Как я могу преобразовать данные X в Y, как вR reshape2 dcast: преобразование данных
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)
)
dcast
функция в reshape2
, кажется, работает, но он не может включать в себя другие столбцы данных, такие как ID, имя и SEX в приведенном выше примере.
Предполагая, что все остальные столбцы по столбцу ID согласованы, например, Майк может быть только мужчиной с идентификатором 1, как мы можем это сделать?
Что вы попробовали? Это похоже на работу: 'dcast (X, ID + NAME + SEX ~ TEST, value.var =" SCORE ")' –
Или используйте 'library (tidyr), spread (X, TEST, SCORE)' – akrun