J'ai plusieurs fichiers dans un dossier. Ils ont tous la même disposition et j'ai extrait les informations que je veux d'eux. Maintenant, pour chaque fichier, je veux écrire un fichier .csv et le nommer après le fichier d'entrée d'origine et ajouter "_output" à celui-ci.En boucle sur un ensemble de fichiers standardisés pour collecter des informations et les enregistrer dans différents fichiers
Toutefois, je ne souhaite pas répéter ce processus manuellement pour chaque fichier. Je veux boucler dessus. J'ai cherché de l'aide en ligne et trouvé beaucoup de bons conseils, y compris beaucoup ici.
Voici ce que j'ai essayé:
#Set directory
dir = setwd("D:/FRhData/elb") #set directory
filelist = list.files(dir) #save file names into filelist
myfile = matrix()
#Read files into R
for (i in 1:length(filelist)){
myfile[i] = readLines(filelist[i])
*code with all calculations*
write.csv(x = finalDF, file = paste (filename[i] ,"_output. csv")
}
Malheureusement, il n'a pas fonctionné. Voici le message d'erreur que je reçois:
Erreur dans as.character (x): ne peut pas forcer type 'fermeture' au vecteur de type 'caractère'
En outre: Message d'avertissement: En mon_fichier [ i] < - readlines (filelist [i]): nombre d'éléments à remplacer est pas un multiple de la longueur de remplacement
Et « report2016-03.txt » est le nom du premier fichier le code doit être exécuté sur.
Est-ce que quelqu'un sait ce que je devrais faire pour corriger cette erreur - ou d'autres erreurs possibles que vous pouvez prévoir?
Merci beaucoup.
============================================== ======================== Voici quelques-unes des ressources que j'ai utilisé:
https://www.r-bloggers.com/looping-through-files/
How to iterate over file names in a R script?
How to loop through a folder of CSV files in R
quel est le but du ";" séparateur pour les noms de fichiers? – cumin
@cumin, merci de le signaler. C'est une faute de frappe. Cela ne fait pas partie du code. –
Y at-il une raison particulière pour laquelle vous utilisez 'readLines' au lieu de' read.table' ou 'read.csv' ou (recommandation personnelle)' data.table :: fread'? –