【发布时间】:2014-11-26 22:57:33
【问题描述】:
我有一组数据,其中向受访者提出了一系列问题,每个问题都有五个回答选项(例如,1:5)。给定这五个选项,我对每个问题都有一个评分键,其中一些答案值得满分(例如,2),其他答案是半分(1),而其他答案是零分(0)。因此,数据框是 n(人)x k(问题),评分键是 k(问题)x m(响应)矩阵。
我要做的是以编程方式创建重新评分项目的新数据集。普通数据集:
x <- sample(c(1:5), 50, replace = TRUE)
y <- sample(c(1:5), 50, replace = TRUE)
z <- sample(c(1:5), 50, replace = TRUE)
dat <- data.frame(cbind(x,y,z)) # 3 items, 50 observations (5 options per item)
head(dat)
x y z
1 3 1 2
2 2 1 3
3 5 3 4
4 1 4 5
5 1 3 4
6 4 5 4
# Each option is scored 0, 1, or 2:
key <- matrix(sample(c(0,0,1,1,2), size = 15, replace = TRUE), ncol=5)
key
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 2
[2,] 2 1 1 1 2
[3,] 2 2 1 1 2
【问题讨论】:
-
您为什么使用
data.frame(cbind(.))而不仅仅是data.frame(.)。前者是不好的做法,尤其是在被绑定的向量是不同类型的情况下。 -
好点! cbind() 在这里是不必要的。