Probleme de sortie dans une boucle à condition
bonjour à tous
je fais un code où je fais une boucle pour vérifier tous les fichiers csv d'un répertoire, et s'il répond à une condition, il doit calculer la corrélation de deux colonnes à l'intérieur... oui mais voilà quand je lance, il me sort toujours que mon vecteur est null.... je pense que ça vient de ma condition, peut être elle me fait sortir de ma boucle je sais pas... parce que je trouve le temps de traitement trés court...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| corr<-function(directory,threshold=0){
liaison<- list.files(directory,full.names = TRUE)
resultat<-data.frame()
for (i in 332){
ouvert<- read.csv(liaison[i])
x<-complete.cases(ouvert)
donnee<-ouvert[x,]
nombre<-nrow(donnee)
if (nombre>threshold){
correlationu<-cor(donnee[,2],donnee[,3])
resultat<-cbind(resultat,correlationu)
}
}
resultat
} |
merci pour votre aide
Problème de sortie dans une boucle à condition
Bonjour,
Je vous conseille de procéder pas à pas sur un fichier, puis ajout de la boucle, puis ajout de la fonction. Vous identifierez plus facilement les erreurs.
Cordialement,
Probleme de sortie dans une boucle à condition
Bonjour,
Je n'ai pas pu exécuter votre programme (fonction complete() non définie). Pensez à indiquer les packages utilisés.
Citation:
Error in file(file, "rt") : invalid 'description' argument
Ce message signifie qu'il y a un problème d'accès aux fichiers. Vérifiez le contenu de la variable liaison.
Cordialement,
Problème de sortie dans une boucle à condition
Bonjour,
Pensez à imprimer des résultats intermédiaires pour tracer votre programme. Je trouve plus lisible de le faire en dehors de la fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| > directory<-"D:/temp"
> threshold<-0
> extract<-complete(directory,id=1:2)
> sub_extract<-extract[which(extract[,2]>threshold),]
> print(sub_extract)
X1L X19L
1 1 19
2 2 19
> #liste<-vector(sub_extract[1])
> resultat<-vector()
>
> liaison<- list.files(directory,full.names = TRUE)
> print(liaison)
[1] "D:/temp/test1.csv" "D:/temp/test2.csv"
>
> for (i in sub_extract[1]){
+ print(liaison[i])
+ ouvert<- read.csv(liaison[i])
+ x<-complete.cases(ouvert)
+ donnee<-ouvert[x,]
+ resultat[i]<-cor(donnee[,2],donnee[,3])
+ }
[1] "D:/temp/test1.csv" "D:/temp/test2.csv"
Error in file(file, "rt") : invalid 'description' argument |
La fonction read.csv() reçoit comme argument la chaîne de caractères "D:/temp/test1.csv" "D:/temp/test2.csv", ce qui explique votre message d'erreur. Revoyez les indices de votre boucle.
Cordialement,
Problème de sortie dans une boucle à condition
Bonjour,
Ajoutez un print(i) en début de boucle, vous comprendrez.
Cordialement,