Нужно отфильтровать только те строки, где для всех id переменная dx равна i10.
df <- structure(list(id = c(1L, 2L, 2L, 3L, 3L, 4L, 4L),
dx = c("E70", "I10", "I10", "I10", "J15", "I10", "I10")), class = "data.frame", row.names = c(NA, -7L))
setDT(df)
вариант 1:
df[, .SD[all(dx == "I10")], by = id]
вариант 2:
df[all(dx == "I10"), .SD, by = id]
не могу понять почему вариант 2 не работает? подскажите
Для i-выражения by не действует, к сожалению. Так что либо создавать переменную заранее, либо как ваш первый способ
Обсуждают сегодня