Bonjour à tous,
Mon souci fait suite à la discussion précédemment résolue à cette adresse: ICI
Pour faire court, je dois importer des fichiers « .csv » d’environ 105000 lignes et 5 colonnes ayant pour nom l’ID d’une machine (ex : « 80288.csv »)
Sauf que le fichier comporte dans la colonne 3 un séparateur de milliers empêchant R de le reconnaitre comme étant un « num ».
Voulant automatiser la procédure d’importation des fichiers et de conversion de la colonne 3, j’ai créé un ficher « .txt » regroupant le nom des machines à étudier : « exp_design_test.txt ». J’utilise le code suivant pour les récupérer :
Le problème se produit à partir du moment ou je veux modifier la colonne 3 du data.frame crée avec la fonction convert. Il ne reconnait pas wec_powercol (ayant pour valeur par exemple: reg.meas.20888[,3]) comme étant un objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 # Set Project Working Directory #-------------------------------------------------------------------------------------------------- setwd("//inter.rsag.site/home/2001/arnaud.lucas/Projet/Etude correlation/2_Pertes_prod_R/1_Test_export_data/2_Raw_data_storage_test") WD=getwd() # import experimental design #-------------------------------------------------------------------------------------------------- exp_design<-read.table(paste(WD,"1_experimental_design/exp_design_test.txt",sep="/"), quote="\"") # Import Measurement Values #-------------------------------------------------------------------------------------------------- for(i in 1:5) {exp_read=expression(read.csv2(paste(WD,"/3_reguard_meas_values/",exp_design[i,1],".csv",sep=""),dec=",",skip=0,stringsAsFactors=FALSE)) wec_name=paste("reg.meas.",exp_design[i,1],sep="") wec_powercol=paste(wec_name,"[,3]",sep="") eval(parse(text=paste(wec_name,"<-",exp_read,sep=""))) convert<-function(x){as.numeric(gsub("[[:space:]]","",gsub(",",".",x)))} # -------------------------------- eval(parse(text=paste(wec_powercol,"<-",convert(wec_powercol),sep=""))) #ou eval(parse(text=paste(wec_powercol,"<-",lapply(wec_powercol,convert),sep="")))
J'ai essayé un peu toutes les combinaisons possibles mais je n'arrive pas implémenter la conversion dans ma boucle alors que si je l'effectue manuellement sur mes data.frames une fois qu'ils ont été importés, tout se passe bien et l'opération met à peine une fraction de seconde.
Code : Sélectionner tout - Visualiser dans une fenêtre à part reg.meas.80288[,3]<-test(reg.meas.80288[,3])
Quelqu'un aurait-il une idée du problème que je rencontre?
En PJ un zip avec un fichier ".csv" et le fichier "exp_design_test.txt" nécessaire pour faire tourner le bordel.
En vous remerciant par avance
Partager