Dupliquer des lignes

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

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Dupliquer des lignes

Messagepar Remy Duchemin » 16 Sep 2013, 15:08

Bonjour,
Je voudrais créer une variable binaire Y à partir de deux variables X1 et X2.
J'ai pris un exemple, voilà mes données

Code : Tout sélectionner

X1<-c(3,2,6)
X2<-c(4,1,8)
X3<-c(2,1,7)

table<-data.frame(X1,X2,X3)



j'obtiens

Code : Tout sélectionner

  X1 X2 X3
1  3  4  2
2  2  1  1
3  6  8  7


et je voudrais obtenir ça :

Code : Tout sélectionner


Y  X3
1  2
1  2
1  2
0  2
0  2
0  2
0  2
1  1
1  1
0  1
1  7
1  7
1  7
1  7
1  7
1  7
1  7
0  7
0  7
0  7
0  7
0  7
0  7
0  7

Pouvez-vous m'apporter votre aide s'il vous plait

Stéphane Adamowicz
Messages : 206
Enregistré le : 07 Mar 2012, 10:13
Contact :

Messagepar Stéphane Adamowicz » 16 Sep 2013, 15:23

Code : Tout sélectionner

rep(X3,(X1+X2))
[/quote]
Stéphane Adamowicz
INRA, UR 1115 Plantes et Systèmes de Culture Horticoles (PSH)
domaine St Paul, site agroparc
84914 Avignon, cedex 9

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 16 Sep 2013, 15:33

Merci mais c'est surtout la création du Y qui me pose des difficultés.
Comment générer des 1 et des 0 en fonction de X1 et X2.
Pour la ligne 1, X1=3 et X2= 4 alors Y=1 trois fois et Y=0 quatre fois.

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Messagepar Serge Rapenne » 16 Sep 2013, 15:45

Une solution :

Code : Tout sélectionner

Y<-unlist(mapply(function(x,y) c(rep(1,x),rep(0,y)),table$X1,table$X2))


nb : ne pas utiliser table comme variable car c'est une fonction de R

Serge


Retourner vers « Questions en cours »

Qui est en ligne

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