You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中使用dplyr判断列中非NA值是否全为TRUE

使用dplyr判断数据框每行指定列非NA值是否全为TRUE

需求说明

给数据框新增assessment列,判断每行col1至col3的非NA值是否全部为TRUE:

  • 若该行非NA值全为TRUE,assessment为TRUE
  • 若该行存在任意一个非NA的FALSE值,assessment为FALSE

示例数据

df <- data.frame(col1 = c(TRUE, TRUE, NA, NA), 
                 col2 = c(FALSE,  TRUE, FALSE, NA), 
                 col3 = c(NA, TRUE, NA, TRUE))

dplyr解决方案

使用dplyr的if_all()函数高效实现需求,无需按行循环:

library(dplyr)

df_result <- df %>%
  mutate(assessment = if_all(col1:col3, ~ is.na(.x) | .x))

结果验证

执行代码后得到的结果如下:

col1col2col3assessment
TRUEFALSENAFALSE
TRUETRUETRUETRUE
NAFALSENAFALSE
NANATRUETRUE

代码解释

  • if_all(col1:col3, ~ is.na(.x) | .x):对每行的col1至col3列逐一检查,判断元素是否为NA或TRUE。只有当该行所有指定列都满足该条件时,assessment才返回TRUE,否则返回FALSE,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:07:45