Bonjour tout le monde,

Je suis nouveau sur le forum et débutant en programmation R (R Studio pour être plus précis).

Je tente de réaliser une série de graphiques assez simples de ce type (cf ci-dessous), représentant le profil 2D d’une plage (du haut de la plage vers le bas).
Mes données sont d’une simplicité redoutable : x = longueur du profil en m ; y = altitude du profil en m :

Pièce jointe 173184

Exemple :

distance altitude
1 0 8.45
2 1 8.54
3 2 8.19
4 3 8.05
5 4 7.26
6 5 7.16
...

Les réaliser un par un ne me pose pas problème, j’utilise le package "openair":

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
beach <- read.table("C:/Users/Blaise/Documents/THESE/dossier_R/2014_article_nord_bzh/profils/profil_Poulou_Aot.txt", header=TRUE, sep="\t", dec=".")
names(beach) <- c("distance", "altitude")
plot((beach), type="l", col="red", xlab="distance (m)", ylab="altitude (m)")
Seulement, j’ai 100 sites à traiter ! J’aimerais donc créer une boucle qui pioche chacun de mes fichiers « .txt » contenus dans un même dossier, afin de m’éviter de faire tous les graphs un par un.
Pour cela, j’utilise la méthodo décrite dans « R pour les débutants » (Paradis, 2005, p72) …

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
species <- c("swallow", "wren", "dunnock")
file <- c("Swal.dat" , "Wren.dat", "Dunn.dat")
for(i in 1:length(species)) {
data <- read.table(file[i]) 
plot(data$V1, data$V2, type="l")
title(species[i])
}

…que j’adapte à mes données:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
beaches <- c("poulou", "prat", "porsguen")
file <- c("profil_poulou_aot.txt", "profil_prat_leach_kerros.txt", "profil_porsguen.txt")
for(i in 1:length(beaches)){
  data <-read.table(file[i])
  plot(distance, altitude, type="l")
  title(beaches[i])
}
J’obtiens ce message d’erreur :
Error in plot(x, y, type = "l") : object 'x' not found

Pourtant j'ai un "x" et un "y" défini dans chacun de mes fichiers...
Si quelqu'un pouvait m'aider. Par avance merci.

Manu