80 votes

Ajouter des lignes à un fichier

Je suis nouveau dans R. J'essaie d'ajouter (append) de nouvelles lignes à un fichier avec mes données existantes dans R. Le problème est que mes données ont environ 30000 lignes et 13000 colonnes. J'ai déjà essayé d'ajouter une ligne avec le code writeLines mais le fichier résultant ne contient que la ligne ajoutée.

0 votes

3 votes

@MichaelOhlrogge Êtes-vous sûr que c'est une copie ? Le Q Écrire des lignes de texte dans un fichier en R dont vous avez donné le lien concerne l'écriture de lignes dans un fichier en général, alors que cette question porte spécifiquement sur l'écriture de lignes dans un fichier. ajout de lignes à un fichier existant.

0 votes

@UweBlock C'est vrai, mais la question liée traite de l'option append dans plusieurs de ses réponses.

135voto

Avez-vous essayé d'utiliser le write fonction ?

line="blah text blah blah etc etc"
write(line,file="myfile.txt",append=TRUE)

42voto

Rainer Points 1435

write.table , write.csv et d'autres ont tous le append= qui ajoute append=TRUE et écrase généralement si append=FALSE . Le choix de l'un ou l'autre dépend donc de vos données.

Au fait, cat() peut également être utilisé pour écrire du texte dans un fichier et possède également la fonction append= argument.

7 votes

Ou même sink(append = TRUE) .

1 votes

Pour les données en texte brut, utilisez cat() au lieu de write() . Comme la documentation de la commande d'écriture déclare : "Les données (généralement une matrice) x sont écrites dans le fichier file ." write() n'est pas destiné aux simples données de type chaîne. Il est destiné à formater des types plus complexes et il s'enroule autour de cat() pour effectuer l'écriture réelle dans le fichier. Lorsque vous utilisez cat() vous devrez paste0(line,"\n") pour mettre une nouvelle ligne à la fin du fichier.

0voto

lapply(listOfVector, function(anyNameofVect){ write(anyNameofVect, file="outputFileName", sep="\t", append=TRUE, ncolumns=100000) })

ou

lapply(listOfVector, write, file="outputFileName", sep="\t", append=TRUE, ncolumns=100000)

4 votes

Trop compliqué si l'on considère que la commande 'write' ajoutera des éléments.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X