list - studio - leer archivos txt en r
R: Imprimir lista a un archivo de texto (7)
Tengo en R una lista como esta:
> print(head(mylist,2))
[[1]]
[1] 234984 10354 41175 932711 426928
[[2]]
[1] 1693237 13462
Cada elemento de la lista tiene un número diferente de sus elementos.
Me gustaría imprimir esta lista en un archivo de texto como este:
mylist.txt
234984 10354 41175 932711 426928
1693237 13462
Sé que puedo usar sink (), pero imprime los nombres de los elementos [[x]], [y] y quiero evitarlo. Además, debido a la cantidad diferente de elementos en cada elemento de la lista, no es posible utilizar write () o write.table ().
Aquí está otro
cat(sapply(mylist, toString), file, sep="/n")
Aquí hay otra forma de usar el sumidero:
sink (sink_dir_and_file_name); imprimir (su lista); lavabo()
De otra manera
writeLines(unlist(lapply(mylist, paste, collapse=" ")))
Dependiendo de tus gustos, una alternativa a la respuesta de nico:
d<-lapply(mylist, write, file=" ... ", append=T);
No probado, pero debería funcionar (editado después de los comentarios)
lapply(mylist, write, "test.txt", append=TRUE, ncolumns=1000)
Resuelvo este problema mezclando las soluciones de arriba.
sink("/Users/my/myTest.dat")
writeLines(unlist(lapply(k, paste, collapse=" ")))
sink()
Creo que funciona bien
Vi en los comentarios de la respuesta de Nico que algunas personas tenían problemas con guardar listas que tenían listas dentro de ellas. También tuve este problema con parte de mi trabajo y esperaba que alguien encontrara una mejor respuesta que la que encontré, sin embargo, nadie respondió a su problema.
Entonces: @ali, @FMKerckhof, y @Kerry, la única forma que encontré para guardar una lista anidada es usar sink () como sugirió el usuario 6585653 (traté de votar su respuesta pero no pude). No es la mejor manera de hacerlo, ya que vincula el archivo de texto, lo que significa que se puede sobrescribir fácilmente o se pueden guardar otros resultados dentro de ese archivo si no cancela el sumidero. Vea a continuación el código.
sink("mylist.txt")
print(mylist)
sink()
Asegúrese de tener el fregadero () al final de su código para que cancele el fregadero.