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 :

rep par groupe


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut rep par groupe
    Bonjour à tous,
    J'ai le data.frame suivant :
    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
    17
    18
    19
    20
    21
    22
    23
    Treatment	Animal	TS
    Treatment A	CN657	Treatment A.CN657
    Treatment A	CN657	Treatment A.CN657
    Treatment A	CN657	Treatment A.CN657
    Treatment A	CN657	Treatment A.CN657
    Treatment A	CN777	Treatment A.CN777
    Treatment A	CN777	Treatment A.CN777
    Treatment A	CN777	Treatment A.CN777
    Treatment A	CN777	Treatment A.CN777
    Treatment A	CO369	Treatment A.CO369
    Treatment A	CO369	Treatment A.CO369
    Treatment A	CO369	Treatment A.CO369
    Treatment A	CO369	Treatment A.CO369
    Treatment B	CN682	Treatment B.CN682
    Treatment B	CN682	Treatment B.CN682
    Treatment B	CN682	Treatment B.CN682
    Treatment B	CN682	Treatment B.CN682
    Treatment B	CO402	Treatment B.CO402
    Treatment B	CO402	Treatment B.CO402
    Treatment B	CO402	Treatment B.CO402
    Treatment B	CO402	Treatment B.CO402
    Treatment B	CO447	Treatment B.CO447
    Treatment B	CO447	Treatment B.CO447
    Et je voudrais creer une colonne, qui serait en fait une valeur numérique de la colonne TS pour chaque traitement et chaque animal (cf ci-dessous)
    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
    17
    18
    19
    20
    21
    22
    23
    Treatment	Animal	TS	Replicate
    Treatment A	CN657	Treatment A.CN657	1
    Treatment A	CN657	Treatment A.CN657	1
    Treatment A	CN657	Treatment A.CN657	1
    Treatment A	CN657	Treatment A.CN657	1
    Treatment A	CN777	Treatment A.CN777	2
    Treatment A	CN777	Treatment A.CN777	2
    Treatment A	CN777	Treatment A.CN777	2
    Treatment A	CN777	Treatment A.CN777	2
    Treatment A	CO369	Treatment A.CO369	3
    Treatment A	CO369	Treatment A.CO369	3
    Treatment A	CO369	Treatment A.CO369	3
    Treatment A	CO369	Treatment A.CO369	3
    Treatment B	CN682	Treatment B.CN682	1
    Treatment B	CN682	Treatment B.CN682	1
    Treatment B	CN682	Treatment B.CN682	1
    Treatment B	CN682	Treatment B.CN682	1
    Treatment B	CO402	Treatment B.CO402	2
    Treatment B	CO402	Treatment B.CO402	2
    Treatment B	CO402	Treatment B.CO402	2
    Treatment B	CO402	Treatment B.CO402	2
    Treatment B	CO447	Treatment B.CO447	3
    Treatment B	CO447	Treatment B.CO447	3
    Je n'y parviens pas j'ai essayé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df %>% group_by(TS) %>% mutate(type = rep(1:3, length.out = length(Monkey)
    Des suggestions sur la façon dont je dois m'y prendre ?
    Merci pour votre aide !

  2. #2
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Bonjour,

    une possibilité :tab$Replicate <- as.integer(factor(tab$TS, unique(tab$TS)))cdlt

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut
    Merci pour votre aide.
    Je viens d'essayer, mais cela numérote de 1 à mon nombre d'animaux dans toute l’expérience sans prendre en compte traitement+animal.
    en fait je veux de 1:3 pour chaque traitement. C'est plus complexe !

  4. #4
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    Je n'avais pas vu la structuration par Treatment,

    Tu peux très bien faire la même chose mais en groupant par cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab %>% group_by(Treatment) %>% mutate(Replicate = as.integer(factor(Animal)))
    tab %>% group_by(Treatment) %>% mutate(Replicate = as.integer(factor(TS)))
    Chaque combinaison sera notée différement.
    Après ici ça fonctionne parce que tes Animaux sont ordonnées par ordre alphabétique, si ce n'était pas le cas et que tu voulais conserver l'ordre d'apparition dans le tableau alors il faudrait le spécifier dans les levels de factor : factor(TS, levels = unique(TS)).

    cdlt

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 257
    Par défaut
    J'obtiens la même chose soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Treatment 1 - Animal 1 : 1
    Treatment 1 - Animal 2 : 2
    Treatment 1 - Animal 3 : 3
    Treatment 2 - Animal 1 : 4
    Treatment 2 - Animal 2 : 5
    Treatment 2 - Animal 3 : 6
    Mais je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Treatment 1 - Animal 1 : 1
    Treatment 1 - Animal 2 : 2
    Treatment 1 - Animal 3 : 3
    Treatment 2 - Animal 1 : 1
    Treatment 2 - Animal 2 : 2
    Treatment 2 - Animal 3 : 3
    C'est un vrai casse tête !
    Si je n'avais pas autant d'échantillon, je l'aurai fait à la main !

  6. #6
    Membre chevronné
    Inscrit en
    Février 2011
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 276
    Par défaut
    re,

    je ne comprends pas parce qu'avec ton exemple chez moi ça fonctionne :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    tab
         Treatment Animal                TS
    1  Treatment A  CN657 Treatment A.CN657
    2  Treatment A  CN657 Treatment A.CN657
    3  Treatment A  CN657 Treatment A.CN657
    4  Treatment A  CN657 Treatment A.CN657
    5  Treatment A  CN777 Treatment A.CN777
    6  Treatment A  CN777 Treatment A.CN777
    7  Treatment A  CN777 Treatment A.CN777
    8  Treatment A  CN777 Treatment A.CN777
    9  Treatment A  CO369 Treatment A.CO369
    10 Treatment A  CO369 Treatment A.CO369
    11 Treatment A  CO369 Treatment A.CO369
    12 Treatment A  CO369 Treatment A.CO369
    13 Treatment B  CN682 Treatment B.CN682
    14 Treatment B  CN682 Treatment B.CN682
    15 Treatment B  CN682 Treatment B.CN682
    16 Treatment B  CN682 Treatment B.CN682
    17 Treatment B  CO402 Treatment B.CO402
    18 Treatment B  CO402 Treatment B.CO402
    19 Treatment B  CO402 Treatment B.CO402
    20 Treatment B  CO402 Treatment B.CO402
    21 Treatment B  CO447 Treatment B.CO447
    22 Treatment B  CO447 Treatment B.CO447
    Avec dplyr :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    tab %>% group_by(Treatment) %>% mutate(Replicate = as.integer(factor(TS)))
         Treatment Animal                TS Replicate
    1  Treatment A  CN657 Treatment A.CN657         1
    2  Treatment A  CN657 Treatment A.CN657         1
    3  Treatment A  CN657 Treatment A.CN657         1
    4  Treatment A  CN657 Treatment A.CN657         1
    5  Treatment A  CN777 Treatment A.CN777         2
    6  Treatment A  CN777 Treatment A.CN777         2
    7  Treatment A  CN777 Treatment A.CN777         2
    8  Treatment A  CN777 Treatment A.CN777         2
    9  Treatment A  CO369 Treatment A.CO369         3
    10 Treatment A  CO369 Treatment A.CO369         3
    11 Treatment A  CO369 Treatment A.CO369         3
    12 Treatment A  CO369 Treatment A.CO369         3
    13 Treatment B  CN682 Treatment B.CN682         1
    14 Treatment B  CN682 Treatment B.CN682         1
    15 Treatment B  CN682 Treatment B.CN682         1
    16 Treatment B  CN682 Treatment B.CN682         1
    17 Treatment B  CO402 Treatment B.CO402         2
    18 Treatment B  CO402 Treatment B.CO402         2
    19 Treatment B  CO402 Treatment B.CO402         2
    20 Treatment B  CO402 Treatment B.CO402         2
    21 Treatment B  CO447 Treatment B.CO447         3
    22 Treatment B  CO447 Treatment B.CO447         3
    Ce qui semble être ce que tu souhaites ?
    cdlt

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/10/2005, 09h49
  2. Réponses: 7
    Dernier message: 23/09/2005, 20h58
  3. Trier les fichiers par type et les afficher par groupe ...
    Par KneXtasY dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 18/09/2005, 18h50
  4. concaténer par GROUP BY des champs text/varchar
    Par Fredobdx dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/07/2005, 13h44

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