重新排列用于计算ICC的数据帧

时间:2014-06-12 03:13:57

标签: r

我正在尝试为多名评分计算多个评分的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
...

我该怎么做?我已尝试使用aggregatedcast,但无法使用它。 谢谢!

2 个答案:

答案 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