You need to enable JavaScript to run this app. 使用R tidyverse筛选author列为NA且其余列有数据的dataframe行
优惠活动
大模型
产品
解决方案
定价
更多

使用R tidyverse筛选author列为NA且其余列有数据的dataframe行

错误原因

你现有代码的逻辑偏差出在第二个filter的判断规则:
across(.cols = everything(), .fns = ~ !is.na(.x))的作用是要求所有列同时满足非NA条件才会保留行,但你筛选的前置条件已经把author列是NA的行挑出来了,所以必然返回空结果,同时也不符合你要求的「其余任意列存在非NA值就保留」的规则。

解决方案

使用tidyverse内置的if_any()函数即可实现「指定列中任意一列满足条件就返回TRUE」的判断,你要的筛选逻辑可以直接写成:

df %>%
  filter(
    is.na(author),
    # 排除author列,检查剩余列是否有任意一列非NA
    if_any(.cols = -author, .fns = ~ !is.na(.x))
  )

上述代码运行后会直接输出你给出的预期结果。

内容的提问来源于stack exchange,提问作者Stevestingray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 15:45:03