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 :

Créer et incrémenter un nom de variable automatiquement


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut Créer et incrémenter un nom de variable automatiquement
    Bonjour,

    Je souhaiterai créer N variables nommées var1, var2, ..., varN sous R de façon automatique.
    Pour cela je dispose d'une table "nomTable" qui me donne la longueur de ces variables et je souhaiterai faire quelque chose du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (I in 1:N){
    varI <- rep(0, nrow(nomTable)) # pour initialiser mes variables
    ....
    }
    Mon problème est que je ne vois pas comment dire à R de concaténer var et I. La seule méthode que j'ai trouvé est la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    paste("var", I, sep="")
    mais R considère alors varI comme un string et non comme un nom de variable.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut
    J'ai trouvé une partie de la solution à mon problème. Pour initialiser ma variable la fonction assign() marche parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assign(paste("var",I,sep=""), rep("0", nrow(nomTable)))
    Mais après j'ai quelques problèmes pour remplir les valeurs de ces variables var1,..., varN par des valeurs venant d'une autre variable varBis1, .., varBisN.
    Par exemple les variables varBis1, .., varBisN sont déjà remplies et je souhaiterais que les variables var1,..., varN reçoivent le factor de ses variables, en faisant quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (I in 1:N){
    assign(paste("var",I,sep=""), rep("0", nrow(nomTable)))# pour initialiser mes variables
     
    assign(paste("var",I,sep=""),factor(paste("varBis",I,sep="")))
    }
    mais cela me donne une variable varI de longueur 1 qui contient seulement la valeur "varBisI". Le problème vient du fait que R prend le string "varBisI" et non la variable mais je ne vois pas comment lui dire de considérer la variable varBisI.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 75
    Par défaut
    il faut utiliser les fonctions eval et parse pour évaluer des chaînes de caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    nomTable <- data.frame(x=rnorm(10))
    for(I in 1:10) {
        eval(parse(text=paste0("var",I,"=rep(0, nrow(nomTable))")))
     }
    ls()
    #  [1] "I"        "nomTable" "var1"     "var10"    "var2"     "var3"     "var4"     "var5"    
    #  [9] "var6"     "var7"     "var8"     "var9"

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2014
    Messages : 19
    Par défaut
    Merci, ça marche parfaitement !

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

Discussions similaires

  1. Incrémenter un nom de variable en CSH
    Par jumiara dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 21/03/2011, 19h37
  2. [AC-2007] Incrémentation du nom du variable via une autre variable !
    Par Spurius dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/04/2010, 14h16
  3. AWK : créer fichier avec un nom de variable
    Par DIE dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 27/08/2009, 08h18
  4. Réponses: 5
    Dernier message: 10/04/2008, 19h07
  5. incrémenter le nom une variable
    Par mederic dans le forum C
    Réponses: 15
    Dernier message: 06/05/2006, 19h11

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