Comment puis-je transformer les données X à Y comme dansR reshape2 dcast: transformer les données
X = data.frame(
ID = c(1,1,1,2,2),
NAME = c("MIKE","MIKE","MIKE","LUCY","LUCY"),
SEX = c("MALE","MALE","MALE","FEMALE","FEMALE"),
TEST = c(1,2,3,1,2),
SCORE = c(70,80,90,65,75)
)
Y = data.frame(
ID = c(1,2),
NAME = c("MIKE","LUCY"),
SEX = c("MALE","FEMALE"),
TEST_1 =c(70,65),
TEST_2 =c(80,75),
TEST_3 =c(90,NA)
)
La fonction dcast
dans reshape2
semble fonctionner, mais il ne peut pas inclure d'autres colonnes dans les données comme ID, nom et le sexe dans l'exemple ci-dessus.
En supposant que toutes les autres colonnes d'une colonne ID sont cohérentes, comme Mike ne peut être qu'un homme avec ID 1, comment pouvons-nous le faire?
Qu'avez-vous essayé? Cela semble fonctionner: 'dcast (X, ID + NOM + SEX ~ TEST, value.var =" SCORE ")' –
Ou utiliser 'library (tidyr); propagation (X, TEST, SCORE)' – akrun