Bonjour,
Mon problème est trivial, néanmoins cela fait bien 3 heures que je suis coincé dessus ...
J'ai plusieurs csv que je souhaite lire. Étant novice en R, j'ai cherché sur internet comment faire cela, et je me suis inspiré d'un exemple de code que j'ai trouvé. Adapté à mon cas, cela donne :
Si je comprends bien, d'un côté, j'ai une liste "names" qui ne contient pas les objets lus, mais seulement les noms (i.e. strings) des fichiers, (liste names) et a côté de cela j'ai un objet par fichier qui porte le nom du fichier qui, lui, contient les données.
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 rm(list=ls()) ##Read files filenames <- list.files(path="C:/test", pattern=".*csv") ##Create list of data frame names without the ".csv" part names <-substr(filenames,1,nchar(filenames)-4) ###Load all files for(i in names){ filepath <- file.path("C:/test/",paste(i,".csv",sep="")) assign(i, read.table(filepath,skip = 21,na.strings="---", colClasses=c("character","numeric",rep("character",2)), sep = ",")) }
Si j'ai bien compris, je peux les récupérer et les consulter avec get(). Par exemple, pour récupérer la seconde colonne du premier fichier, je peux utiliser :
Mon problème est que j'ai l impression que si je peux lire les données, je ne peux pas les modifier (style éliminer les valeurs NA). Je me suis peut-être trompé dans la syntaxe, mais le code suivant ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part get(names[1])[2]
De plus, ça n'a pas l air super pratique de se trainer ce get() à toutes les sauces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part get(names[1])[is.na(get(names[1]))] <-0
Bref, je voudrais donc que durant ma lecture des données, j'obtienne une liste contenant les objets eux-mêmes. Je pense que cela sera plus simple pour la suite. Mais helas, je ne vois pas comment faire cela.
Une âme charitable pourrait m'aider svp ?
Merci
Slumpy.
Partager