j'aimerais savoir si, lorsque je fais une boucle pour lire un par un les fichiers d'un dossier, il y a un moyen de n'appeler qu'une partie du nom du fichier ci celui-ci est unique, et non le nom du fichier en entier ?
Je m'explique : pour chaque individu, repéré par son id, je veux lire le fichier qui lui correspond, qui est de la forme "ADE_[id_indiv]_[numéro_du_trajet]_bout.txt", dans un dossier cible spécifié au début du script. Exemple : "ADE_20190130_5261174_1_Dve_Bout.txt", ou bien "ADE_20181229_6070564_5_Dve_Bout.txt"
Or, certains fichiers ont été corrigés, et ont pour nom "ADE_[id_indiv]_[numéro_trajet]_bout_corr.txt", du coup, faut-il que je trouve un autre moyen de nommer mes fichiers, ou bien il existe une formule d'appel me permettant de spécifier uniquement l'id de l'individu ? Par exemple, une formule permettant de lire un à un tous les fichiers du dossier dans l'ordre, sans avoir à spécifier le nom...
Question subsidiaire : j'aimerais optimiser cette boucle car tous les individus n'ont pas le même nombre de trajets...
Code : Tout sélectionner
# script de base
setwd(dossier_cible) #là, je ne sais pas comment rendre ça reproductible
id <- as.character(c(1:120)) #simplifié, dans mon jeu de données, l'id est plus long et complexe, mais unique
for (a in 1:nrow(id)) { #
for (j in 1:8) {
name_file <- paste("ADE_",id[a],[j],"_bout.txt") #cette boucle n'est d'ailleurs pas optimale, car tous les indiv ne font pas 8 trajets, et je dois passer ceux pour qui le fichier n'existe pas...
Logger <- read.table(name_file,header=T,sep="\t", dec=",")
#suite du script...
}
}
J'espère avoir été claire et reproductible ;-)
Merci pour votre aide
L.