ajouter un en-tête de fichier créé par “écrire.csv”
Je suis en train d'automatiser certaines données de l'exportation, et je voudrais ajouter un en-tête de chaque fichier comme "s'il vous plaît citer Bob et Jane 2008" ... ou même quelques lignes d'instructions spécifiques en fonction du contexte.
J'ai regardé l'écriture.csv et de l'écriture.le tableau de la documentation, mais ne pas voir une telle fonctionnalité.
Quelle est la meilleure façon d'atteindre cet objectif?
- Vous pouvez utiliser
writeLines
pour ajouter un en-tête et leurwrite.csv
avec l'optionappend=TRUE
à écrire vos données. append
est ignoré et automatiquement mis àF
pourwrite.csv
, utilisezwrite.table, sep = ','
à la place.
Vous devez vous connecter pour publier un commentaire.
Ici deux approches sont possibles - la solution sous MODIFIER à l'aide de connexions est plus souple et efficace.
À l'aide de
write.table(...,append = T)
etcat
append=T
dans un appel àwrite.table
, ayantcat
l'en-tête il y a déjàenveloppé dans sa propre fonction....
Noter que
append
est ignoré dans unewrite.csv
appel, il vous suffit d'appelerwrite.table_with_header(x,file,header,sep=',')
et ce sera le résultat dans un fichier csv.
MODIFIER
à l'aide de connexions
(Merci à @flodel dont la suggestion est-ce)
Noter que cette version vous permet d'utiliser
write.csv
ouwrite.table
ou de toute fonction et utilise un fichier de connexion qui(comme @flodel points dans les commentaires)
ouvrir et fermer uniquement une fois le fichier, et l'ajoute automatiquement. Par conséquent, il est plus efficace!
file
etclose
pour ouvrir et fermer un fichier de connexion. Sinon, à vous de l'ouverture et de la fermeture du fichier deux fois, ce qui est un peu inefficace. Avec une connexion ouverte, vous êtes toujours à la précédente, de sorte que vous n'aurez pas besoinappend = TRUE
, et vous pouvez les utiliserwrite.csv
.if(!missing(header)) writelines(headder,con=datafile)
. Ensuite, vous pouvez l'appeler "mywrite" 🙂 au lieu de "à écrire.avec.l'en-tête.peut-être"