Bonjour,
Concrètement votre problème vient des arguments mal spécifiés dans read.delim.
Et plus généralement de la localisation des fichiers (le code n'est pas des plus reproductible pour le garantir).
Ceci étant dit, il y a d'autres problèmes dans votre code (malgré le fait que ce soit "fonctionnel"), par exemple ceci:
Code : Tout sélectionner
setwd(dir="C:/Users/Marc-Antoine/OneDrive - CEN PACA/autres missions/strategie_metropole_aix/version_1")
setwd(maillage)
setwd(gp_tax[i])
setwd ne s'utilise pas pour "naviguer" dans les répertoires et ne devrait absolument jamais être utilisé de cette façon.
ou encore une boucle for avec incrémentation du résultat, surtout que vous parlez de plusieurs centaines de milliers de lignes, ce qui constitue le pire cas d'utilisation de la boucle for...
Code : Tout sélectionner
lst_tot<-NULL
for (i in 1:length(gp_tax)){
lst<-read.delim(nom_obs, header=TRUE, dec=".", sep="\t",stringsAsFactors=FALSE)
lst_tot<-rbind(lst_tot,lst)
}
La code suivant se simplifie:
Code : Tout sélectionner
gp_tax<-list("amphibiens","arachnides","autres invertébrés",
"chiroptères","coléoptères","crustacés",
"hémiptères","hétérocères","mammifères hors chiroptères",
"mollusques","névroptères","odonates",
"reptiles","oiseaux",
"orthoptères","rhopalocères","poissons")
gp_tax<-as.character(gp_tax)
en:
Code : Tout sélectionner
gp_tax<-c(
"amphibiens", "arachnides", "autres invertébrés",
"chiroptères", "coléoptères", "crustacés",
"hémiptères", "hétérocères", "mammifères hors chiroptères",
"mollusques", "névroptères", "odonates",
"reptiles", "oiseaux",
"orthoptères", "rhopalocères", "poissons"
)
Voici un exemple de code plus "propre"
Code : Tout sélectionner
### Définition du dossier principal
home_directory <- "C:/Users/Marc-Antoine/OneDrive - CEN PACA/autres missions/strategie_metropole_aix/version_1"
### Définition d'un sous dossier
maillage_directory <- paste0(home_directory, "/maillage_2")
### Liste les fichiers "obs.txt" de façon récursive dans les sous-dossiers de "maillage_directory"
# gp_tax <- list.files(path = maillage_directory, pattern = "obs.txt", recursive = TRUE, full.names = TRUE) # ici vous écrivez aussi dans faune qui est un sous répertoire, donc à éviter...
# list_tables <- lapply(X = gp_tax, FUN = read.delim, header = TRUE, sep = "\t", stringsAsFactors = FALSE) # pour lire tous les fichiers listé
### Lecture des fichiers des dossiers de gp_tax et stockage dans une liste
gp_tax<-c(
"amphibiens", "arachnides", "autres invertébrés",
"chiroptères", "coléoptères", "crustacés",
"hémiptères", "hétérocères", "mammifères hors chiroptères",
"mollusques", "névroptères", "odonates",
"reptiles", "oiseaux",
"orthoptères", "rhopalocères", "poissons"
)
list_tables <- lapply(X = gp_tax, FUN = function(itax) {
read.delim(
file = paste(maillage_directory, itax, "obs.txt", sep = "/"),
header = TRUE,
sep = "\t",
stringsAsFactors = FALSE
)
}
### Concatène les éléments de la liste pour en faire un gros tableau
big_table <- do.call("rbind", list_tables)
### Ecrit le tableau dans le dossier "faune" (encore faut-il qu'il existe) dans un fichier nommé "obst.txt"
write.table(big_table, file = paste0(maillage_directory, "/faune/obs.txt"), sep = "\t", row.names = FALSE)
### Lecture du tableau
faune <- read.delim(file = paste0(maillage_directory, "/faune/obs.txt"), header = TRUE, sep = "\t", stringsAsFactors = FALSE)
Une petite suggestion de lecture:
https://irudnyts.github.io/r-coding-style-guide/Cordialement,