2011-12-05 12 views
5

Tengo un marco de datos con algunas columnas muy largas de "comentarios". Cuando los exhibo, se dividen en bloques diferentes, lo que hace que sea difícil leer entre filas. ¿Es posible cambiar una configuración en R o modificar la llamada a data.frame para truncar cadenas a una determinada longitud?¿Es posible truncar la salida cuando se visualiza el contenido de los cuadros de datos?

Ejemplo: una trama de datos de 3 columnas

data.frame(cbind(rep(1,5),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5)),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5)))) 

resultante trama de datos como se ve en mi pantalla:

X1            X2 
1 1 very very long obnoxious character string here 
2 1           dog 
3 1           cat 
4 1           dog 
5 1            5 
              X3 
1 very very long obnoxious character string here 
2           dog 
3           cat 
4           dog 
5            5 
+0

posible duplicado de [tramas de datos de impresión con cadenas largas en R] (http://stackoverflow.com/questions/8343682/printing-dataframes-with-long-strings-in-r) – Andrie

Respuesta

11

recomiendo una especie de la forma explícita de esta manera:

f <- function(x) data.frame(lapply(x, substr, 1, 5)) 

uso:

> f(d) 
    X1 X2 X3 
1 1 very very 
2 1 dog dog 
3 1 cat cat 
4 1 dog dog 
5 1  5  5 

Aunque es posible cambiar el comportamiento por defecto, no lo recomiendo:

body(format.data.frame)[[5]] <- quote(for (i in 1L:nc) rval[[i]] <- substr(format(x[[i]], ..., justify = justify), 1, 5)) 
unlockBinding("format.data.frame", baseenv()) 
assign("format.data.frame", format.data.frame, pos = baseenv()) 
lockBinding("format.data.frame", baseenv()) 
rm(format.data.frame) 

uso:

> d 
    X1 X2 X3 
1 1 very very 
2 1 dog dog 
3 1 cat cat 
4 1 dog dog 
5 1  5  5 
+0

¡Maravilloso! Mis exploraciones de expresiones regulares aún no me habían llevado a subscribirme; ahora tengo un punto de partida para agregarlo a mi caja de herramientas. –

Cuestiones relacionadas