2010-11-09 17 views
7

He usado principalmente head(), tail() y View() para mirar tablas en R, pero me pregunto si alguien usa algo más sofisticado. Recuerdo haber leído que había R < -> Interfaces de Excel disponibles (basadas en COM o XLLoop?) - ¿Alguien usa una para usar Excel (u OpenOffice) para mostrar marcos de datos durante una sesión R, y no necesariamente resulta en el resultado final? exportado a un archivo csv?Visualización de tablas de datos en R

Edit: Gracias por todas las sugerencias. Supongo que debería haber especificado que estaba ejecutando Emacs + ESS en una Mac principalmente (lo que descalifica a COM y Deducer), aunque también cambio a Linux y Windows en alguna ocasión. Supongo que View() sigue siendo la mejor solución multiplataforma que pude encontrar ...

+1

... Ver() y data.entry () solo me voló la cabeza. No sé cómo nunca los había visto antes. –

Respuesta

4

Sí, a veces uso Excel para ver datos de R durante una sesión. Recomiendo mirar this blog post on the Learning R blog. Yo uso el RDCOMClient; permite algo más que exportar/importar, pero el trade-off se agrega complejidad.

Editar: Existen varias otras soluciones que no están basadas en COM en esa publicación de blog, incluido el uso de ODBC.

+0

Vaya, se olvidó de que COM era una cosa de Windows (de la que me mudé recientemente). Ahora que lo pienso, * había * jugado con RDCOM hace mucho tiempo. Pero la publicación del blog fue muy útil. – hatmatrix

3

Utilizo la siguiente función para ver una muestra de líneas de un marco de datos ... Lo mantengo en mi inicio y lo uso todo el tiempo para ejecutar comprobaciones ... con frecuencia Ejecutaré esto un par de veces ...

# 
# sample a couple of lines from a data frame 
# 
sample.df <- function(df, n=3, ordered=TRUE) { 
    if(ordered) { 
      df[sort(sample(nrow(df), min(nrow(df), n))),] 
    } else { 
      df[sample(nrow(df), min(nrow(df), n)),] 
    } 
} 
+0

Ah, extrañamente, también hice 'sample()' una función genérica y agregué un método para marcos de datos en mi '.Rprofile'! Pero solo marginalmente mejor que head() y tail() ... – hatmatrix

+0

La ventaja de usar sample.df() en lugar de head() o tail() es que con frecuencia hay un pedido para el data.frame no está inicialmente consciente, ¡así que a menudo uso los tres! – Sean

2

Deducer's Data Viewer.

formar el Manual:

El visor de datos se puede acceder usando ya sea deducer ("Visor de datos") o la data.viewer función()

Hay muchas otras características útiles hay , todos ellos disponibles desde la interfaz de comando.

+0

Oh, quería que esta fuera la solución, pero en una Mac parece que tengo que ejecutarlo a través de JGR ... Soy un geek de Emacs. – hatmatrix

+0

@Stephen, funciona felizmente con emacs e incluso terminal. Lo único que no tienes menús. Esta es la razón por la cual la función data.viewer(). Ya estoy planeando por un tiempo escribir una interfaz de menú para deducer para emacs. Nunca llegué a eso. Esperemos que para el final de este año;) – VitoshKa

+0

Oh crack, lo veo ahora. No funciona bajo Mac, lo siento, no lo sabía. – VitoshKa

10

Puede utilizar el editor de datos básicos para ver los datos

edit(your.data.frame) 
+0

Gracias - Estoy familiarizado con este, pero ¿no es inferior a View()? Es similar, excepto que espera a que cierre la ventana para continuar (y es mejor llamar a 'invisible (edit (my.data.frame))'). – hatmatrix

+1

@crippledlambda - 'edit()' le permite editar datos, con algo como 'temp <- edit (temp)'. Utiliza su editor predeterminado, pero creo que obliga al editor integrado para marcos de datos. Para una edición más sofisticada de marcos de datos, hay 'tk2edit()' en el paquete tcltk2. –

1

fix funciona para mí

también my.df[seq(1, nrow(my.df), nrow(my.df)/30),]

+0

gracias pero también como edit.data.frame() Creo, y View es superior para ver datos, si no me equivoco (puede modificar accidentalmente los valores de la tabla con la corrección, y solía convertir clases/modos variables) si no me equivoco). – hatmatrix

1

Como edit es demasiado básico, tiendo a sólo mesas abiertas en Excel al usar R. Para hacerlo, escribo los datos en un archivo temporal y lo abro con Excel:

open_in_excel <- function(some_df){ 
    tFile<-tempfile(fileext=paste0(substitute(some_df), ".tsv"),tmpdir="~/tmp") 
    write.table(some_df, tFile, row.names=F, sep="\t", quote=F) 
    system(paste('open -a \"/Applications//Microsoft Office 2011/Microsoft Excel.app\"', tFile)) 
} 

open_in_excel(iris) 

Para asegurarse de que la llamada system debe ajustarse al sistema operativo utilizado y la ruta de instalación de Excel.

3

Otra opción elegante sería utilizar el paquete DT

if (!require("DT")) devtools::install_github("rstudio/DT") 

datatable(iris) 

Esto abrirá una mesa de paginado, puede ordenar y filtrar en su navegador. Ver http://rstudio.github.io/DT/ para ver ejemplos.

+0

whoa, eso es genial. tuve que instalar devtools primero pero lo tengo funcionando y parece que podría usar algo. – hatmatrix

3

Puede ejecutar utils::View(data).

Otra opción sería abrir una nueva ventana de RStudio.Uno puede hacer esto (en Linux por lo menos), simplemente mediante la ejecución en el terminal: rstudio Si uno quiere ser capaz de cerrar el terminal después, tan sólo ejecute

nohup rstudio & 
Cuestiones relacionadas