2017-08-20 17 views
0

Apparemment, quelqu'un a rencontré un problème similaire, here. Cependant, la question de Jacob (d'il y a deux ans) est toujours sans réponse. Et aussi, le contexte est un peu différent du mien:Comment interpréter une erreur dans write (mydata, "mydata.csv")? "Liste" ne peut pas être handeled par "chat"?

Alors j'essayais d'exporter mon dataframe dans un fichier .csv qui fonctionne habituellement très bien. Cette fois, cependant, je suis tombé dans le message d'erreur suivant:

write(mydata, "mydata.csv") 

#error message: 
Error in cat(x, file = file, sep = c(rep.int(sep, ncolumns - 1), "\n"), : argument 1 (type 'list') cannot be handled by 'cat' 

Maintenant, je ne vais pas copier-coller ce head(mydata) retours, parce que mon dataframe est relativement grand. Il semble n'y avoir rien de mal avec les données et les variables, car je peux travailler avec eux normalement. La seule chose est que je ne peux pas les exporter dans un fichier .csv (ou tout autre format).

aide? *

* Probablement ce qui est vraiment stupide et j'ai oublié quelque chose ...

+5

Voulez-vous dire 'write.csv (mydata ...'? – CPak

+0

Bien sûr, c'est ce que je voulais dire, le problème a été résolu, merci #stupidmistakes;) –

Répondre

3

commentaire de Chi Pak ci-dessus est juste. Pour résoudre votre problème d'enregistrement de la trame de données dans un fichier csv, utilisez write.csv au lieu de write.

Pour répondre à votre question , le message d'erreur a surgi parce que write est une race totalement différente de l'animal de write.csv. Si vous lisez le fichier d'aide ?write, il est décrit comme un wrapper pour la fonction de concaténation cat, qui s'attend à ce que les données soient écrites sous la forme d'un vecteur atomique (ou quelque chose résultant de names()). Un type de données est list, que vous pouvez vérifier avec typeof(mydata). Ce n'est pas un vecteur atomique & cause write pour renvoyer l'erreur que vous avez rencontrée.

+0

Oh, une telle erreur stupide. Bien sûr, c'est 'write.csv()'. Merci pour vos deux commentaires. Peut-être que je ne devrais pas travailler jusqu'à tard dans la nuit et attendre des résultats. ;) –