我正在使用类似于这个的数据框:
df<-data.frame(student=c(rep(1,5),rep(2,5)), month=c(1:5,1:5),
quiz1p1=seq(20,20.9,0.1),quiz1p2=seq(30,30.9,0.1),
quiz2p1=seq(80,80.9,0.1),quiz2p2=seq(90,90.9,0.1))
print(df)
student month quiz1p1 quiz1p2 quiz2p1 quiz2p2
1 1 1 20.0 30.0 80.0 90.0
2 1 2 20.1 30.1 80.1 90.1
3 1 3 20.2 30.2 80.2 90.2
4 1 4 20.3 30.3 80.3 90.3
5 1 5 20.4 30.4 80.4 90.4
6 2 1 20.5 30.5 80.5 90.5
7 2 2 20.6 30.6 80.6 90.6
8 2 3 20.7 30.7 80.7 90.7
9 2 4 20.8 30.8 80.8 90.8
10 2 5 20.9 30.9 80.9 90.9
描述五个月内学生获得的成绩-在两次测验中,每次测验分为两个部分。
我需要将这两个测验分别放在不同的行中-以便每个学生在每个月份都有两行,一行代表一个测验,而且每个测验还要分成两列,对应于每个测验部分。 当我使用melt功能来转化表格时:
melt.data.frame(df, c("student", "month"))
我也把测验的两个部分分别放在不同的行里。
dcast(dfL,student+month~variable)
当然,这让我回到了起点,我找不到一种方法将表格转换为所需的形式。 有没有办法使melt命令的功能类似于:
melt.data.frame(df, measure.var1=c("quiz1p1","quiz2p1"),
measure.var2=c("quiz1p2","quiz2p2"))