Réograniser les données dans un dataframe

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

Theo Da Silva
Messages : 6
Enregistré le : 15 Mar 2018, 14:07

Réograniser les données dans un dataframe

Messagepar Theo Da Silva » 09 Avr 2018, 15:07

Bonjour,

Je travaille sur un jeu de données de ce type (dataframe d'exemple) :

Code : Tout sélectionner

V1<-c("-","-","*","-","-","*","*")
V2<-c("01","01","01","02","02","02","02")
IND<-c("a","b","c","d","e","f","g")
sex<-c(1,2,1,1,2,2,2)
rang<-c(1,2,3,1,2,3,4)
df<-data.frame(V1,V2,IND,sex,rang)


J'ai utilisé la commande reshape qui m'avait été conseillée dans une précédente question

Code : Tout sélectionner

df1<-reshape(df,idvar = "V2",v.names = c("V1","IND","sex"),timevar = "rang",direction="wide")


J'obtiens ce résultat :

Code : Tout sélectionner

> df1
  V2 V1.1 IND.1 sex.1 V1.2 IND.2 sex.2 V1.3 IND.3 sex.3 V1.4 IND.4 sex.4
1 01    -     a     1    -     b     2    *     c     1 <NA>  <NA>    NA
4 02    -     d     1    -     e     2    *     f     2    *     g     2


Ce qui se rapproche, du résultat souhaité.

Cependant je souhaiterais savoir si il existe une manière de renvoyer à la ligne les indvidus supérieur à 3 en conservant les mêmes individus des colonnes 1 et 2, pour obtenir un résultat comme ceci :

Code : Tout sélectionner

  V2 V1.1 IND.1 sex.1 V1.2 IND.2 sex.2 V1.3 IND.3 sex.3
1 01    -     a     1    -     b     2    *     c     1
4 02    -     d     1    -     e     2    *     f     2
5 02    -     d     1    -     e     2    *     g     2


Ou bien dois je reprendre mon tableau en manuel ?

Merci d'avance pour votre réponse

Cordialement

Théo DA SILVA

Retourner vers « Questions en cours »

Qui est en ligne

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