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