R 替换有0行,数据有1400行?
我检查了其他问题,没有找到真正的解决办法 我试图根据一系列条件更新数据帧中的向量,如下所示:R 替换有0行,数据有1400行?,r,dataframe,for-loop,if-statement,R,Dataframe,For Loop,If Statement,我检查了其他问题,没有找到真正的解决办法 我试图根据一系列条件更新数据帧中的向量,如下所示: EEG3$CorrectFinal <-as.character(EEG3$CorrectFinal) subjectlist1 = c("s002","s004","s010","s011","s012","s017","s018","s019&q
EEG3$CorrectFinal <-as.character(EEG3$CorrectFinal)
subjectlist1 = c("s002","s004","s010","s011","s012","s017","s018","s019","s020","s025","s026","s028")
for (i in subjectlist1) {
EEG3$CorrectFinal <- ifelse (EEG3$subject == subjectlist1[i] & EEG3$trial <326 & EEG3$Deviant == 101 & EEG3$Correct == 222|EEG$subject == subjectlist1[i] & EEG3$trial <326 & EEG3$Deviant == 102 & EEG3$Correct == 155|EEG3$subject == subjectlist1[i] & EEG3$trial >326 & EEG3$Deviant == 101 & EEG3$Correct == 155|EEG$subject == subjectlist1[i] & EEG3$trial >326 & EEG3$Deviant == 102 & EEG3$Correct == 222, yes = 1, no = EEG3$CorrectFinal)}
EEG3$CorrectFinal您的示例代码在我的控制台上没有错误,但有一个问题可能导致您的终端出现问题
逐步完成循环中的代码。使用mydata
作为EEG3
,如果您进入for
循环
for(主题列表1中的i){
消息(sprintf(“i='%s',subjectlist1[i]='%s',i,subjectlist1[i]))
EEG3$Correct最终326和EEG3$Deviant==102和EEG3$Correct==222)
),是=1,否=EEG3$CorrectFinal)
}
这实际上可以简化一点,完全不需要for
循环
先是你的代码,然后是我的:
#这只是为了预填充CorrectFinal2变量,以便将for循环与我的代码进行比较
EEG3$CorrectFinal2 326和EEG3$Deviant==102和EEG3$Correct==222)
),是=1,否=EEG3$CorrectFinal)
}
ind 326和偏差==101和正确==155)|
(试验>326,偏差=102,正确=222)
})
EEG3$CorrectFinal2[ind]是mydata
应该是EEG3
?顺便问一下,您是否忽略了326
的试验
?你的逻辑确保它永远不会匹配。
EEG3 <-read.table(header = TRUE, text =" subject trial Deviant Correct CorrectFinal
1 s002 1 101 102 0
2 s002 2 102 101 0
3 s002 3 101 155 0
4 s002 4 101 155 0
5 s002 5 101 155 0
6 s002 6 101 155 0
7 s002 7 102 222 0
8 s002 8 101 155 0
9 s002 9 101 155 0
10 s002 10 102 222 0
11 s002 11 101 222 1
12 s002 12 101 222 1
13 s002 13 101 222 1
14 s002 14 101 222 1
15 s002 15 102 155 1
16 s002 16 101 222 1
17 s002 17 101 155 0
18 s002 18 101 222 1
19 s002 19 102 155 1
20 s002 20 101 222 1")
> ```