我正在尝试为多名评分计算多个评分的ICC。我的数据类似于:
student rater Q1 Q2 Q3
stA raA 4 3 1
stA raB 1 2 3
stA raC 2 2 2
stB raA 3 1 1
...
我想将数据格式化为:
raterA raterB raterC
stAQ1 4 1 2
stAQ2 3 2 2
stAQ3 1 3 2
stBQ1 3 1 1
...
我该怎么做?我已尝试使用aggregate
和dcast
,但无法使用它。
谢谢!
答案 0 :(得分:3)
以下是data.frame dcast
的{{1}}方法:
d
如果你真的希望将library(reshape2)
foo <- dcast(melt(d, variable.name='quarter'), student + quarter ~ rater)
foo
# student quarter raA raB raC
# 1 stA Q1 4 1 2
# 2 stA Q2 3 2 2
# 3 stA Q3 1 3 2
# 4 stB Q1 3 NA NA
# 5 stB Q2 1 NA NA
# 6 stB Q3 1 NA NA
和student
组合成行名(虽然我不推荐它,因为它会让学生和季度进一步聚合困难),那么:
variable
答案 1 :(得分:2)
基础R版本的好评:
reshape(
cbind(dat[1:2],stack(dat[-(1:2)])),
idvar=c("student","ind"), timevar="rater", direction="wide"
)
# student ind values.raA values.raB values.raC
#1 stA Q1 4 1 2
#4 stB Q1 3 NA NA
#5 stA Q2 3 2 2
#8 stB Q2 1 NA NA
#9 stA Q3 1 3 2
#12 stB Q3 1 NA NA