Dans un répertoire, j'ai 780 fichiers et j'ai besoin de les lier par lignes, en utilisant R, dans 78 fichiers différents, puis écrire un fichier .txt par fichier. Les noms de fichiers sont comme ceux-ci:Tables de données dans R avec des boucles for par des listes de fichiers avec correspondance de modèle
S1_S1_F1.xlsx
S1_S2_F1.xlsx
...
S1_S5_F1.xlsx
S1_S6_F2.xlsx
...
S1_S10_F2.xlsx
S2_S1_F1.xlsx
La première partie de l'expresion S1_(.*).xlsx
répète 10 fois, puis change jusqu'à S78_(.*).xlsx
, avec la deuxième partie changeant (.*)_S1(.*).xlsx
-(.*)S10(.*).xlsx
. J'ai besoin de combiner les fichiers juste par le second terme pour avoir 78 fichiers de S1.txt
à S78.txt
.
Je suis loin d'être un expert en R, donc mon approche était de le faire fichier par fichier avec le code suivant:
S1<-list.files(pattern = "^S1(.*).xlsx")
S1<-lapply(S1,read_excel)
S1 <- bind_rows(S1)
write.table(S1, "S1.txt", sep="\t",row.names=FALSE)
jusqu'à
S78<-list.files(pattern = "^S78(.*).xlsx")
S78 <-lapply(S78,read_excel)
S78 <- bind_rows(S78)
write.table(S78, "S1.txt", sep="\t",row.names=FALSE)
Comme vous pouvez le voir , ce code semble avoir été écrit par un Australopithecus (ce que je ne suis pas), alors je demande votre aide! Comment puis-je le faire avec une boucle for?
Ce qui ne fonctionne pas? Erreur? Résultats non désirés? – Parfait
@Parfait Cela fonctionne, mais je veux juste améliorer le code avec une boucle for pour l'appliquer à un autre répertoire avec 10 fois plus de fichiers. Sinon, je vais tout recommencer de la même façon. – jealcalat