Problème programmation RStudio

a marqué ce sujet comme résolu.

Bonjour,

Je suis étudiante, actuellement en stage et j’ai un problème dans la programmation sur RStudio.

Je souhaite créer une fonction mais cela ne marche pas, un message d’erreur s’affiche.

Je vous mets mon code ici:

path="C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/"

table_NIR=function(path = TRUE) { liste_tableFichiers=list.files(path) data=read.csv(paste(path,"GBW_sols broyes_2mm",sep=""),sep=";", header=TRUE)

Quand je fais tourner la dernière ligne, un message d’erreur s’affiche:

Error in file(file, "rt") : impossible d’ouvrir la connexion De plus : Warning message: In file(file, "rt") : impossible d’ouvrir le fichier 'C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols broyes_2mm' : Permission denied

Je ne sais pas quoi faire.

Merci d’avance de votre aide.

Bonne journée.

Bonjour,

Tu peux mettre en forme ton code pour qu’il soit plus lisible. Il faut utiliser des caractères ``` sur la ligne avant et après ton code, et tu peux ajouter une coloration syntaxique pour que ce soit plus clair. Je te redirige vers le guide markdown de ZdS pour en savoir plus :)

+2 -0

Oui excusez moi.

path="C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/"

table_NIR=function(path = TRUE) { 
liste_tableFichiers=list.files(path) 
data=read.csv(paste(path,"GBW_sols broyes_2mm",sep=""),sep=";", header=TRUE)

Error in file(file, "rt") : impossible d’ouvrir la connexion De plus : Warning message: In file(file, "rt") : impossible d’ouvrir le fichier 'C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols broyes_2mm' : Permission denied

J’espère que cela ira comme ça.

+0 -0
path="C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/"

table_NIR=function(path = TRUE) {
  table_sortie1=data.frame("campagne"=NA,"groupe"=NA,"operateur"=NA,"type"=NA,"numPlac"=NA,"horizon"=NA,"tamisage"=NA,"broyage"=NA,"rep"=NA)
  liste_tableFichiers=list.files(path)
  data=read.csv(paste(path,"GBW_sols broyes_2mm",sep=""),sep=";", header=TRUE)

#Sols broyés 2mm#
setwd("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols broyes_2mm")
liste_tableFichiers1=list.files("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols broyes_2mm")

nbre_fichiers=length(liste_tableFichiers1)               
j=1
ajout_col=0

while (j<=nbre_fichiers) {
  data2=read.csv(paste(liste_tableFichiers1[j+1],sep=""),header=F,sep=";")
  max_freq=max(data2[,1])
  
  if (max_freq>8000) {
    n=dim(data2)[1]
    
    if (ajout_col==0) {
      vect_code=paste("N",1:n,sep="")
      mat=matrix(data=NA,nrow=1,ncol=n)
      table_sortie1=cbind(table_sortie1,mat)
      colnames(table_sortie1)[c(10:(n+9))]=vect_code
      table_sortie2=data.frame("Code"=rep(NA,n),"Frequence"=rep(NA,n))
      table_sortie2[,1]=vect_code
      table_sortie2[,2]=data2[,1]
      
      vect_code=paste("N",1:n,sep="")
      ajout_col=1
    }
  }
}

#Sols tamisés 2mm#
setwd("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols tamises_2mm")
liste_tableFichiers2=list.files("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols tamises_2mm")
nbre_fichiers1=length(liste_tableFichiers2)               
j=1
ajout_col=0

while (j<=nbre_fichiers1) {
  data3=read.csv(paste(liste_tableFichiers2[j+1],sep=""),header=F,sep=";")
  max_freq1=max(data3[,1])
  
  if (max_freq>8000) {
    n1=dim(data3)[1]
    
    if (ajout_col==0) {
      vect_code=paste("N",1:n1,sep="")
      mat1=matrix(data=NA,nrow=1,ncol=n1)
      table_sortie1=cbind(table_sortie1,mat1)
      colnames(table_sortie1)[c(10:(n+9))]=vect_code
      table_sortie3=data.frame("Code"=rep(NA,n1),"Frequence"=rep(NA,n1))
      table_sortie3[,1]=vect_code
      table_sortie3[,2]=data3[,1]
      
      vect_code=paste("N",1:n1,sep="")
      ajout_col=1
    
    }
  }
}

#Sols tamisés 4mm#
setwd("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols tamises_4mm")
liste_tableFichiers2=list.files("C:/Users/pm199/OneDrive/Documents/Cours L3/S6/Stage/NIRs_Sols/GBW_sols tamises_4mm")
nbre_fichiers2=length(liste_tableFichiers2)               
j=1
ajout_col=0

while (j<=nbre_fichiers2) {
  data4=read.csv(paste(liste_tableFichiers2[j+1],sep=""),header=F,sep=";")
  max_freq2=max(data4[,1])
  
  if (max_freq>8000) {
    n2=dim(data4)[1]
    
    if (ajout_col==0) {
      vect_code=paste("N",1:n2,sep="")
      mat2=matrix(data=NA,nrow=1,ncol=n2)
      table_sortie1=cbind(table_sortie1,mat2)
      colnames(table_sortie1)[c(10:(n+9))]=vect_code
      table_sortie4=data.frame("Code"=rep(NA,n2),"Frequence"=rep(NA,n2))
      table_sortie4[,1]=vect_code
      table_sortie4[,2]=data4[,1]
      
      vect_code=paste("N",1:n2,sep="")
      ajout_col=1
    }
  }
}
liste=list(table_sortie1,table_sortie2,table_sortie3,table_sortie4)
return(liste)
}

De plus, quand je charge la dernière ligne de code, un message d’erreur s’affiche: Erreur : aucune fonction d’où sortir ; saut vers le niveau le plus haut

+0 -0

Salut,

Je ne connais pas R, mais il me semble (c’est le cas dans les autres langages, et le message d’erreur me donne cette impression) que le mot-clé return n’a de sens qu’au sein d’une fonction alors que tu as l’air de l’appeler au milieu d’un script.

Pour ce qui est de la première erreur, j’ai l’impression qu’il manque l’extension dans le nom du fichier que tu essayes d’ouvrir (selon toute probabilité, .csv). Je te suggère donc de vérifier le nom complet de ton fichier, et de nous dire si cela fonctionne.

D’accord, je manque sûrement d’information.

Pour l’erreur liée au fichier, pourrait-on avoir le message complet, avec sa mise en forme ? Pourrais-tu également nous montrer l’arborescence de tes fichiers ?

En ce qui concerne return, mon propos est qu’il n’est pas situé au sein d’une fonction (notée avec le mot clé function), enfin pas d’après le code que tu nous montre. Il est donc normal que ça ne fonctionne pas.

J’ai d’ailleurs l’impression que ton code pourrait être raccourci en définissant une fonction, tu as l’air de faire 3 fois presque la même chose dedans.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte