У меня есть data.frame, который содержит много столбцов. Я хочу сохранить строки, у которых нет NA в 4 из этих столбцов. Усложнение возникает из-за того, что у меня есть другие строки, которые разрешены, в них есть NA, поэтому я не могу использовать complete.cases или is.na. Какой самый эффективный способ сделать это?
Удалять строки, содержащие NA в определенных столбцах R
Ответ 1
Вы можете использовать complete.cases()
. Просто примените его к нужным столбцам (столбцы 1: 4 в приведенном ниже примере), а затем используйте логический вектор, который он возвращает, чтобы выбрать допустимые строки из всего файла data.frame.
set.seed(4)
x <- as.data.frame(replicate(6, sample(c(1:10,NA))))
x[complete.cases(x[1:4]),]
# V1 V2 V3 V4 V5 V6
# 1 7 4 6 8 10 5
# 2 1 2 5 5 1 2
# 5 6 8 4 10 6 6
# 6 2 6 9 3 4 4
# 7 4 3 3 1 2 1
# 9 8 5 2 7 7 3
# 10 10 10 1 2 5 NA