Quiero escribir un cuadro de datos en un archivo usando el write
función, sin embargo esto no funciona, porque data.frame()
lo crea como una lista.
Ejemplo reproductivo:
data <- data.frame(cbind(1:2,3:4))
typeof(data)
data
# X1 X2
#1 1 3
#2 2 4
#> typeof(data)
#[1] "list"
Ahora cuando quiero escribir en un archivo usando
write(data,"data.txt")
Me sale un error diciendo
Error en cat (lista (...), archivo, sep, relleno, etiquetas, anexar): el argumento 1 (tipo "lista") no puede ser manejado por "cat"
Lo que obviamente sucede porque los datos son una lista, pero no entiendo por qué es una lista. Estoy ejecutando R 3.1.3
Respuestas
6 para la respuesta № 1En realidad, tu data
es un data.frame
:
class(data)
# [1] "data.frame"
El problema es ese write
no se adapta bien a los marcos de datos, pero funcionaría con matrices:
write(as.matrix(data), "test.txt")
Si desea escribir el marco de datos en un archivo use write.table
:
write.table(data, "test.txt")
El mensaje de error viene del subyacente cat
función y el hecho de que una data.frame
Conceptualmente es una lista de vectores de la misma longitud.
0 para la respuesta № 2
Qué tal si write.table(data,"data.txt")
?
0 para la respuesta № 3
Un data.frame es una lista de estructuras vectoriales de la misma longitud. Puedes usar typeof (df)
para ver que muestra el tipo de df (aquí un ejemplo data.frame) como "lista".
Puede usar write.table para escribir un data.frame en un archivo de texto como se muestra a continuación:
write.table(df, "filename.txt", sep = "t", row.names = FALSE)