Я использую следующий код, чтобы определить, имеет ли какой-либо из столбцов в моей таблице данных 1065. Если какой-либо из столбцов имеет 1065, я получаю «ИСТИНА», что отлично работает. Теперь я хочу вывести только true, если любой из столбцов notcancer0: notcancer33 содержит 1065, а все остальные - NA. Другие столбцы могут содержать другие значения, например 1064, 1066, и т.д. c. Но я хочу вывести «ИСТИНА» для строк, где есть только 1065, а все остальные столбцы содержат NA для этой строки. Как лучше всего это сделать?
biobank_nsaid[, ischemia1 := Reduce(`|`, lapply(.SD, `==`, "1065")), .SDcols=notcancer0:notcancer33]
Пример данных:
biobank_nsaid = structure(list(aspirin = structure(c(2L, 1L, 1L, 1L), .Label =
c("FALSE", "TRUE"), class = "factor"), aspirinonly = c(TRUE, FALSE, FALSE,
FALSE), med0 = c(1140922174L, 1140871050L, 1140879616L, 1140909674L ), med1 =
c(1140868226L, 1140876592L, 1140869180L, NA), med2 = c(1140879464L, NA,
1140865016L, NA), med3 = c(1140879428L, NA, NA, NA)), row.names = c(NA, -4L),
class = c("data.table", "data.frame"))