Логическое условие при поднаборе не дает правильных значений

Я хотел установить подкадр данныхproject Я работал с, используя логический. Я получаю парадоксальный результат. Часть логического предшествующегоROLL.NO. аргумент не имеет отношения к вопросу. Извините, я не смог привести воспроизводимый пример. Дайте мне знать, как я могу сделать этот вопрос воспроизводимым без необходимости показывать все 393 записи соответствующих столбцов в моем фрейме данных.D14 а такжеDC31 простые целочисленные значения, причем некоторые значенияNA.

 culprits<-project$ROLL.NO.[(project$DC31==1&project$D14==2)|(project$DC31==2&project$D14==1)&!is.na(project$DC31)&!is.na(project$D14)]
culprits
 [1] 3138 3129 3129 3135 3135 3136 3120 3126 3133 3125 3125 3125 3132 3132 3123 3123 3131
 project$HOUSE.NO[(project$DC31==1&project$D14==2)|(project$DC31==2&project$D14==1)&!is.na(project$DC31)&!is.na(project$D14)&project$ROLL.NO.==3131]
[1] "14/132" "14/176" "16/133" "14/111" "14/252"
> project$HOUSE.NO[(project$DC31==1&project$D14==2)|(project$DC31==2&project$D14==1)&!is.na(project$DC31)&!is.na(project$D14)&project$ROLL.NO.==3129]
[1] "14/132" "15/162" "14/176" "16/133" "14/111"
> project$ROLL.NO.[(project$DC31==1&project$D14==2)|(project$DC31==2&project$D14==1)&!is.na(project$DC31)&!is.na(project$D14)&project$ROLL.NO.==3136]
[1] 3129 3136 3120 3123 3123
 project$ROLL.NO.[(project$DC31==1&project$D14==2)|(project$DC31==2&project$D14==1)&!is.na(project$DC31)&!is.na(project$D14)&project$ROLL.NO.==3125]
[1] 3129 3120 3125 3125 3125 3123 3123
project$ROLL.NO.[project$ROLL.NO.==3136]
[1] 3136 3136 3136 3136 3136 3136 3136 3136 3136

Я пытался понять, что происходит в моем коде, и я также включил результаты этих запросов. когдаproject$ROLL.NO.==3136 являетсяFALSE для любого другогоROLL.NO.Я не понимаю, почему другиеROLL.NO. вызывается, когда другие аргументы добавляются с& с этим. Более того, те же три записи ошибочно повторяются вместе с любым вызваннымROLL.NO. НетNA значения вROLL.NO. колонка. И длина логических векторов в каждом из условий одинакова, следовательно, нет рециркуляции. Дайте мне знать, если необходимо предоставить дополнительную информацию.

ДОПОЛНЕНИЕ

project <-  structure(list(ROLL.NO. = c(3138L, 3138L, 3138L, 3138L, 3138L, 
3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 
3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 3138L, 3129L, 3129L, 
3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 
3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 3129L, 
3129L, 3129L, 3129L, 3121L, 3121L, 3121L, 3121L, 3121L, 3121L
), DC31 = c(2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 
1L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 
2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 
1L, 2L, 2L, 2L, 2L), D14 = c(2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 
1L, 2L, 1L, 2L, 0L, 1L, 2L, 2L, 0L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 
2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L), HOUSE.NO = c("14/274", 
"14/259", "14/217", "14/258", "14/306", "14/300", "14/96", "14/166", 
"14/69", "14/68", "14/16", "14/93", "14/130", "14/321", "14/324", 
"14/139", "14/314", "14/323", "14/208", "14/78", "14/150", "14/155", 
"14/102", "14/132", "14/159", "14/163", "14/165", "14/146", "14/148", 
"14/104", "14/56", "14/53", "14/99", "14/48", "15/164", "15/148", 
"15/158", "15/107", "15/160", "15/162", "15/243", "15/66", "15/249", 
"15/86", "14/388", "14/396", "14/431", "14/401", "14/103", "15/36"
)), .Names = c("ROLL.NO.", "DC31", "D14", "HOUSE.NO"), row.names = c(NA, 
50L), class = "data.frame")

Ответы на вопрос(1)

Ваш ответ на вопрос