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 :

Boucle - Ajouter Colonne dans le nom dépend de la variable


Sujet :

R

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Boucle - Ajouter Colonne dans le nom dépend de la variable
    Bonjour à tous,

    Voici mon problème: J'ai une table TABLE avec 1 variable V1. Je souhaite créer 15 colonnes dont les noms dont situés dans un vecteur P=c("a","b","c", ... )

    Comment puis-je faire pour créer ma colonne (avec mes valeurs voulues dedans) de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i (1:row(TABLE) {
     
    TABLE$"Valeur de P[i]" <- TABLE$V1[i]+1 }
    Cela me permettrait de créer à la fois la colonne et les valeurs dedans.J'ai cherché en vain, merci de votre aide

    Ineedi²

  2. #2
    Membre actif Avatar de Alpacky
    Homme Profil pro
    .
    Inscrit en
    Mars 2014
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2014
    Messages : 99
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    Je ne suis pas certain de saisir les valeurs que vous voulez ajouter mais il me semble que vous pourriez utiliser cbind ou bien peut être l'une de ces deux propositions
    (les résultats sont différents, attention aux indices)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    mytable <- data.frame(V1=seq(1,10)) 
    colvect <- letters[ seq(from=1, to=10) ] #colnames
     
    #loop on each row of mytable1
    for (i in 1:nrow(mytable)) {
      print(mytable[i,"V1"])
      mytable[,colvect[i]] <- mytable[,"V1"] + 1  ## 1
      mytable[i,colvect[i]] <- mytable[i,"V1"] + 1 ## 2
    }
    Pour le cas ##1 : on affecte le vecteur V1 + 1 à chaque nouvelle colonne dont le nom est dans colvect
    Pour le cas ##2 : on affecte uniquement la valeur de V1 à la ligne i pour chaque nouvelle colonne et on a des NA partout ailleurs

    Je ne sais pas si cela répond à la question, peut-être qu'avec quelques précisions supplémentaires je pourrais mieux aider !

  3. #3
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Boucle - Ajouter Colonne dans le nom dépend de la variable
    Bonjour,

    En s'inspirant de ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > df <- data.frame(V1=c(1,2,3,4))
    > varlist <- c("a","b","c","d")
    > library(reshape2)
    > df <- dcast(df, V1 ~ varlist, value.var="V1")
    > df[,-1] <- df[,-1]+1
    > df
      V1  a  b  c  d
    1  1  2 NA NA NA
    2  2 NA  3 NA NA
    3  3 NA NA  4 NA
    4  4 NA NA NA  5
    Cordialement,

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    Merci pour vos réponses, j'ai trouvé la solution à mon problème de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ## Créer des colonnes de tabletest à NULL ayant comme nom de colonne les éléments d'une liste listevaleurs ##
     
    for (i in 1:length(listevaleurs)){
      tabletest[,listevaleurs[i]] <- NA
    }
    S'il existe d'après vous une requete sans utiliser la boucle je suis preneur (j'ai tendance à tout le temps utiliser les boucles à outrance, ce qui n'est pas forcément le plus performant/lisible).

    Ineedi²

  5. #5
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Boucle - Ajouter Colonne dans le nom dépend de la variable
    Bonjour,

    Là vous avez modifié l'énoncé puisque toutes vos valeurs sont manquantes. La boucle est alors inutile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > df <- data.frame(V1=c(1,2,3,4))
    > varlist <- c("a","b","c","d")
    > df[,varlist] <- NA
    > df
      V1  a  b  c  d
    1  1 NA NA NA NA
    2  2 NA NA NA NA
    3  3 NA NA NA NA
    4  4 NA NA NA NA
    Cordialement,

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 58
    Points : 57
    Points
    57
    Par défaut
    En effet, merci. La boucle est alors inutile.

    Ineedi2

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

Discussions similaires

  1. Ajout colonne dans mon panier
    Par mikael2235 dans le forum Langage
    Réponses: 14
    Dernier message: 04/08/2009, 17h38
  2. [WD 14] Ajout Colonne dans un tableau !
    Par Grammaton54 dans le forum WinDev
    Réponses: 2
    Dernier message: 12/05/2009, 16h56
  3. ajout colonne dans fichier directement
    Par Strami dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/02/2009, 11h09
  4. Ajout colonnes Dans Table
    Par cjacquel dans le forum Access
    Réponses: 3
    Dernier message: 11/12/2006, 22h29
  5. [VBA] Ajout colonne dans recordset
    Par le_niak dans le forum Access
    Réponses: 25
    Dernier message: 31/07/2006, 12h35

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