Fonction paste et valeur numéric

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Fabien Malo
Messages : 51
Enregistré le : 08 Sep 2008, 09:42

Fonction paste et valeur numéric

Messagepar Fabien Malo » 16 Jan 2009, 10:12

Bonjour,
J'ai un problème somme toute très simple à régler mais je but dessus depuis un petit bout de temps.

Au début j'ai nb fichiers csv stockés dans un répértoire (chemin d'accès path), le nom de ces fichiers est nom, j'ai plusieurs variables var dans ce fichier
Je désire récupérer dans un seul et même vecteur toutes les valeurs d'une variable.
J'ai testé le code ci-après mais je n'obtiens pas le résultat souhaité

Code : Tout sélectionner

fImp<-function(path,nom,nb,var)
{
j<-1
tab<-matrix()
Data<-list()
taille<-numeric()
   for(i in 1:nb){
      #Je récupère mes données
      temp<-read.table(paste(path,nom, i, ".csv", sep=""),header=TRUE, sep=";", dec=",")
      Data[[i]] <- temp
      #Taille de mon vecteur
      taille[i]<-dim(Data[[i]])[1]
               #Stockage dans un vecteur
      tab[j:j-1+taille[i]]<-paste("Data[[",i,"]]$",var,sep="")
      j<-taille[i]
   }
}

Mon problème se situe au niveau de :

Code : Tout sélectionner

tab[j:j-1+taille[i]]<-paste("Data[[",i,"]]$",var,sep="")

Je n'arrive pas à faire comprendre à R que paste("Data[[",i,"]]$",var,sep="") est un vecteur ... pour lui c'est une chaine de caractère ... donc mon tableau n'est pas rempli.
Merci de m'éclairer

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 16 Jan 2009, 10:27

Bonjour,

a tester :

Code : Tout sélectionner

fichiers <- paste(path,nom,1:nb,".csv",sep="") # l'emplacement complet des fichiers
valeurs <- sapply(fichier,function(x) read.table(x,header=TRUE,sep=";",dec=",")[,var])

# si valeurs est une liste
valeurs <- unlist(valeurs)

# si valeurs est une matrice
valeurs <- c(valeurs)


Maxime

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Re: Fonction paste et valeur numéric

Messagepar Olivier Delaigue » 16 Jan 2009, 10:34

Fabien Malo a écrit :Mon problème se situe au niveau de :

Code : Tout sélectionner

tab[j:j-1+taille[i]]<-paste("Data[[",i,"]]$",var,sep="")

Je n'arrive pas à faire comprendre à R que paste("Data[[",i,"]]$",var,sep="") est un vecteur ... pour lui c'est une chaine de caractère ... donc mon tableau n'est pas rempli.


Maxime a répondiu à cette question il y a très peu (http://forums.cirad.fr/logiciel-R/viewtopic.php?t=1648) :

Code : Tout sélectionner

eval(parse(text = paste(mytab$", "mycol", sep = "")))


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité

cron