аргумент функции в фильтре dplyr в R - PullRequest
1 голос
/ 17 апреля 2020
filter(data, function(x) sum(is.na(x))>2)

Я хочу использовать этот фрагмент кода для получения подмножества данных, которое содержит строки, содержащие менее 2 значений NA, однако возникает ошибка:

Ошибка: фильтр аргумента 2 условие не оценивается как логический вектор

Просто интересно, почему и как я могу с этим справиться? Большое спасибо!

1 Ответ

1 голос
/ 17 апреля 2020

Мы можем использовать filter с rowSums

library(dplyr)
data %>%
   filter(rowSums(is.na(.)) < 2)

Или с использованием base R

data[rowSums(is.na(data)) < 2,]

data

data <- data.frame(col1 = c(2, 3, NA), col2 = c(2, NA, NA), col3 = c(1, 2, 3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...