首页 > 解决方案 > R中dplyr过滤器中的函数参数

问题描述

filter(data, function(x) sum(is.na(x))>2)

我想使用这段代码来获取包含少于 2 个 NA 值的行的数据子集,但是会发生错误:

错误:参数 2 过滤条件不计算为逻辑向量

只是想知道原因,我该如何处理?非常感谢!

标签: rfunctiondplyr

解决方案


我们可以filter使用rowSums

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

或使用base R

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

数据

data <- data.frame(col1 = c(2, 3, NA), col2 = c(2, NA, NA), col3 = c(1, 2, 3))

推荐阅读