我有数据,其中每个参与者对9个对象中的每一个做出3个判断(27个判断)。 9个物体在3x3设计中变化(在受试者内),因此有2个因素。
我从ID + 27数据列开始,我需要
我已经阅读了reshape()和melt()以及cast()的手册,但还没有弄清楚我需要做些什么来实现它。以下是我目前可以查看实际数据的进度。
scsc3 <- read.csv("http://swift.cbdr.cmu.edu/data/SCSC3-2006-10-10.csv")
library(reshape)
scsc3.long <- melt(scsc3,id="Participant")
scsc3.long <- cbind(scsc3.long,colsplit(scsc3.long$variable,split="[.]",names=c("Item","Candidate","Performance","Situation")))
scsc3.long$variable <- NULL
scsc3.long$Candidate <- NULL
上面的代码告诉我:
Participant value Item Performance Situation
4001 5.0 Success GL IL
4001 60 ProbAdmit GL IL
4001 1 Admit GL IL
4002 ....
我需要的是像这样的数据框
Participant Performance Situation SuccessValue ProbAdmitValue AdmitValue
4001 GL IL 5.0 60 1
...
谢谢!
答案 0 :(得分:9)
试试这个:
require(reshape2)
> dcast(scsc3.long,
Participant + Performance + Situation ~ Item,
value_var = 'value' )
Participant Performance Situation Admit ProbAdmit Success
1 4001 GH IH 1 100 7
2 4001 GH IL 1 50 5
3 4001 GH IM 1 60 5
4 4001 GL IH 0 40 3
5 4001 GL IL 0 0 2
6 4001 GL IM 0 40 4
...
考虑dcast
正在做什么的一种方法是:将数据框“转换”为宽格式
行是Participant + Performance + Situation
和Item
的组合
列是Admit, ProbAdmit, Success
的不同可能值,即value_var = 'value'
。
value
表示应为每个“行列”组合显示{{1}}列的条目。