R中的宽到长格式(?)

时间:2016-08-06 07:38:20

标签: r

我的数据集包含学生毕业后获得的学位信息。因此,如果学生毕业两个学位,他/她将出现两次。例如:

StudentID    DegreeType      Date        MajorName
    1            BS         04/20/16      Biology
    1            BA         04/20/16      Math

有些学生只出现一次,因为他们只完成了一个学位。

我试图更改数据集" long"到"宽"格式,但无法得到我正在寻找的东西。我使用了dcastreshape,但无济于事。我需要这样的东西

StudentID    DegreeType1    DegreeType2    Date1     Date2    MajorName1    MajorName2

任何建议都会很棒。

1 个答案:

答案 0 :(得分:0)

dcast函数不在reshape包中,在reshape包中,你可以使用cast函数。

StudentID=c(1,1)
DegreeType=c("BS","BA")
Date=c("04/20/16","04/20/16")
MajorName = c("Biology","Math")
df <- data.frame(StudentID,DegreeType,Date,MajorName)
zz <- melt(df,id=c("StudentID"))
cc <- cast(zz,StudentID~variable,print)
cc
> cc
     StudentID DegreeType_X1 DegreeType_X2  Date_X1  Date_X2 MajorName_X1 MajorName_X2
1         1            BS            BA 04/20/16 04/20/16      Biology         Math