Pregunta

Tengo un marco de datos con algunas columnas de "comentarios" muy largas. Cuando me muestran, están divididos en diferentes bloques, lo que dificulta la lectura de las filas. ¿Es posible cambiar una configuración en R o modificar la llamada a Data.Frame para truncar las cadenas a cierta longitud?

Ejemplo: un marco 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))))

DataFrame resultante 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
¿Fue útil?

Solución

Recomiendo una especie de forma explícita como esta:

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 predeterminado, no 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top