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")

> ```