R中 判断数据框中某行的所有字符是否均为某两个值

在处理一个大型队列的问卷信息,需要判断每个参与对象的用药情况,但是每个人同时存在缺失的情况。我已经将所有NA替换为-8这个值,问卷系统默认无效录入为9999。如果该参与者对应的一行记录中出现了 1140874686记为他用过该药,这一行全部为-8或者全部为9999和-8的组合,记为缺失(我设置为-8),其余情况均记为0。

这一行记录有49列,所以直接只用 if else语句会非常长,我想使用for循环来判断每行的情况,新增一列来记录。

for (i in 1:nrow(data_medicine)){
if(1140874686%in%data_NI_medicine[i,]) data_medicine.0[i,50]<-1 else
if( ) else data_NI_medicine.0[i,50]<-0
}

不知道如何写代码判断 这一行字符是否都是由 -8和9999 这两个数值的任意组合构成,来问问各位!感谢!

data_medicine.0[i,50] 是我要新增那一列。

如果我没有理解错的话,你是指要替换单元格值为 -8和9999 的单元格为0,值为1140874686的单元格替换为1:

for (i in 1:nrow(DT)) {
    for (j in 1:ncol(DT)) {
        DT[i,j] <- ifelse(DT[i,j] %in% c(-8,9999) ,yes = 0 ,no = DT[i,j])
        DT[i,j] <- ifelse(DT[i,j] == 1140874686 ,yes = 1 ,no = DT[i,j])
    }
}

这样写判断语句会简单些

img