IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Manipulation de chaînes de caractères


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté


    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Par défaut Manipulation de chaînes de caractères
    Bonjour,
    Je voudrais manipuler des chaines de caractères de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (i in 1:14){
    	paste("var1", i, sep="")=read.table("D:/paste("var1", i, sep="").csv", header=TRUE, sep=";", dec=",")
    }
    En gros je voudrais avoir dans ma variable : var1 les données issues du fichier var1, données stockées sur le dossier D:/.
    Merci pour votre aide.
    Fafabzh
    Les balises code
    FAQ SAS
    Rubrique SAS

    Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.

  2. #2
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,

    Il y a sans doute plus simple, mais la seule bidouille que j'ai trouvé à ce jour pour faire ce genre de chose donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i in 1:14)
     {
        filei <- paste("D:/var1", i, ".cvs", sep="")
        cmd <- paste("var1", i, " <- read.table(file=filei, header=TRUE, sep=\";\", dec=\",\"", sep="")
        eval(parse(text=cmd))
     }
    Tu peux bien sûr regrouper les lignes "filei <-" et "cmd <-" en une seule... Je les ai séparées pour une question de lisibilité. Pour voir ce que ça donne, tu peux remplacer l'évaluation par print(cmd).

    Ne pourrais-tu pas également envisager de placer toutes tes variables dans une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var1[[i]] <- read.table(file=paste("D:/var1", i, ".cvs", sep=""), 
                            header=TRUE, sep=";",...)
    Je sais que les listes sont un peu ch***tes à manipuler, mais dans un tel cas, ça peut servir.

  3. #3
    Membre expérimenté


    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Par défaut
    Merci bien pour ta réponse, c'est exactement ce que je voulais.
    Les balises code
    FAQ SAS
    Rubrique SAS

    Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Membre expérimenté


    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Par défaut
    Bonjour,
    J'ai essayé de suivre ton conseil concernant l'utilisation des listes mais je pense que me heurte à un problème de caractères spéciaux le "[" ne doit pas être reconnu.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i in 1:14){
    	filei <- paste("D:/var", i, ".csv", sep="")
        	cmd <- paste("var[[",i,"]]<- read.table(file=filei, header=TRUE, sep=\";\", dec=\",\")",sep="")
        	eval(parse(text=cmd))
    }
    Fafabzh
    Les balises code
    FAQ SAS
    Rubrique SAS

    Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.

  5. #5
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Houlà, tu te compliques la vie.

    La solution alternative ne nécessite pas de passer par une chaine de caractère que tu évalue par la suite. Ça t'évite justement le côté contre-intuitif de la première solution.

    Après, tu as peut-être également eu un problème parce que var n'était pas considéré comme une liste existante (pour les listes, une déclaration préalable semble nécessaire).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var <- list()
     
    for (i in 1:14)
      {
        var[[i]] <- read.table(file=paste("D:/var", i, ".cvs", sep=""), 
                               header=TRUE, sep=";", dec=",")
      }

  6. #6
    Membre expérimenté


    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3 176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 176
    Par défaut
    C'est en effet beaucoup plus simple.

    A+
    Les balises code
    FAQ SAS
    Rubrique SAS

    Si vous souhaitez contribuer à la rubrique SAS, contactez-moi ou tout autre membre de l'équipe BI par MP.

  7. #7
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Citation Envoyé par pitipoisson Voir le message
    Il y a sans doute plus simple, mais la seule bidouille que j'ai trouvé à ce jour pour faire ce genre de chose donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i in 1:14)
     {
        filei <- paste("D:/var1", i, ".cvs", sep="")
        cmd <- paste("var1", i, " <- read.table(file=filei, header=TRUE, sep=\";\", dec=\",\"", sep="")
        eval(parse(text=cmd))
     }
    Il y avait effectivement plus simple:

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MFC + Manipuler les chaînes de caractères
    Par mqsi dans le forum MFC
    Réponses: 2
    Dernier message: 15/11/2006, 16h24
  2. Manipulation de chaînes de caractères
    Par carreau dans le forum Contribuez
    Réponses: 1
    Dernier message: 26/10/2006, 10h46
  3. Manipulation de chaînes de caractères
    Par sbeprod dans le forum Access
    Réponses: 15
    Dernier message: 28/07/2006, 14h33
  4. Réponses: 3
    Dernier message: 07/12/2005, 10h09
  5. Etat - Manipulation de chaînes de caractères
    Par migaleb dans le forum Access
    Réponses: 3
    Dernier message: 07/12/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo