【发布时间】:2021-08-17 15:54:53
【问题描述】:
我有一个 data.frame,其中包含一个 ID 号和来自调查的缩放响应:
df(responses)
ID X1 X2 X3 X4
A1 1 1 2 1
B2 0 1 3 0
C3 3 3 2 0
我还有一个 data.frame 用作键:
df(key)
X Y Z
2 1 1
3 2 2
4 3 4
我正在尝试编写一个脚本来计算每个参与者的X、Y 和Z 分数,其中X 分数是@987654327 下列出的问题的答案总和@ 在键中。
例如参与者A1 的X 分数将等于A1 行(1+2+1 = 4) 中X2、X3 和X4 的总和。
想要的输出是:
df(output)
ID X Y Z
A1 4 4 3
B2 4 4 1
C3 5 8 6
但是,我目前正在努力使用 key 中的值索引 data.frame responses。我现在的状态是:
#store scale names
scales <- c(colnames(key))
#loop over every participant
for (i in responses$ID){
#create temporary data.frame with only participant "i"s responses
data <- subset(responses, ID == i)
#loop over each scale and store the relevant response numbers
for (s in scales){
relevantResponses <- scales[c(s)]
#create a temporary storage for the total of each scale
runningScore <- 0
#index each response and add it to the total
for (r in relevantResponses){
runningScore <- runningScore + data[1,r]
但是我得到了错误:
Error in `[.data.frame`(data, 1, r) :
undefined columns selected
有没有比嵌套循环更好的索引方法?
【问题讨论】: