J'ai dans R une liste comme celle-ci:
> print(head(mylist,2))
[[1]]
[1] 234984 10354 41175 932711 426928
[[2]]
[1] 1693237 13462
Chaque élément de la liste a un nombre différent d'éléments.
Je voudrais imprimer cette liste dans un fichier texte comme ceci:
mylist.txt
234984 10354 41175 932711 426928
1693237 13462
Je sais que je peux utiliser sink (), mais il affiche les noms des éléments [[x]], [y] et je veux l'éviter. De plus, en raison du nombre différent d'éléments dans chaque élément de la liste, il n'est pas possible d'utiliser write () ou write.table ().
Non testé, mais il devrait travail (édité après les commentaires)
lapply(mylist, write, "test.txt", append=TRUE, ncolumns=1000)
J'ai vu dans les commentaires de la réponse de Nico que certaines personnes rencontraient des problèmes d'enregistrement des listes contenant des listes. J'ai également rencontré ce problème avec certains de mes travaux et espérais que quelqu'un trouverait une meilleure réponse que celle que j'ai trouvée, mais personne n'a répondu à leur problème.
Ainsi: @ ALi, @FMKerckhof et @Kerry, la seule façon pour enregistrer une liste imbriquée consiste à utiliser sink () comme suggéré par l'utilisateur6585653 (j'ai essayé de voter sa réponse mais je n'ai pas pu). Ce n'est pas la meilleure façon de le faire, car vous liez le fichier texte, ce qui signifie qu'il peut être facilement écrasé ou que d'autres résultats peuvent être enregistrés dans ce fichier si vous n'annulez pas le collecteur. Voir ci-dessous pour le code.
sink("mylist.txt")
print(mylist)
sink()
Assurez-vous d'avoir l'évier () à la fin de votre code pour pouvoir l'annuler.
Autrement
writeLines(unlist(lapply(mylist, paste, collapse=" ")))
en fonction de vos goûts, une alternative à la réponse de nico:
d<-lapply(mylist, write, file=" ... ", append=T);
Voici un autre
cat(sapply(mylist, toString), file, sep="\n")
Le format ne sera pas complètement identique, mais les données sont écrites dans un fichier texte et R pourra les relire à l’aide de dget
lorsque vous souhaitez les récupérer à nouveau sous forme de liste.
dput(mylist, "mylist.txt")
Je résous ce problème en mélangeant les solutions ci-dessus.
sink("/Users/my/myTest.dat")
writeLines(unlist(lapply(k, paste, collapse=" ")))
sink()
Je pense que ça marche bien