你如何删除 NA?

How do you remove NAs?

penguins %>% 
  select(bill_length_mm) %>% 
filter(!is.na(bill_length_mm)) %>% 
  mean(as.numeric(bill_length_mm), na.rm=TRUE)

错误消息:参数不是数字或逻辑:返回 NA[1] NA

过滤后检查数据集显示没有 NA 的数值数据。
为什么会出现此错误?代码的第二行或第三行不应该删除所有 NA 吗?

谢谢。

尝试将 mean 包装在 summarize 中,如

penguins %>% 
  select(bill_length_mm) %>% 
filter(!is.na(bill_length_mm)) %>% 
  summarize(mean(as.numeric(bill_length_mm), na.rm=TRUE))

发生这种情况是因为 mean 需要一个向量,但您传递的是数据帧(来自管道)。