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

R语言根据多列分组阈值条件创建布尔新列的实现方法

实现方法

方法1:基础R实现

直接通过apply逐行统计满足阈值要求的列数,判断是否≥3即可:

# 定义各列对应的阈值
thresholds <- c(A = 990, B = 990, C = 1000, D = 1000, E = 1005, G = 1005)
# 逐行计算满足条件的列数,生成新列
df$`above threshold` <- apply(df[, names(thresholds)], 1, function(x) {
  sum(x > thresholds, na.rm = TRUE) >= 3
})

参数说明:na.rm = TRUE 表示遇到NA值时不计入满足条件的计数,符合常规逻辑,若需要特殊处理NA可自行调整。

方法2:tidyverse(dplyr)实现

适合习惯tidyverse语法的场景:

library(dplyr)
df <- df %>%
  rowwise() %>%
  mutate(`above threshold` = sum(
    A > 990,
    B > 990,
    C > 1000,
    D > 1000,
    E > 1005,
    G > 1005,
    na.rm = TRUE
  ) >= 3) %>%
  ungroup()

实现绿色标记输出效果

如果需要将above threshold为TRUE的行标记为绿色,可以使用gt包渲染表格:

# 未安装gt包先执行 install.packages("gt")
library(gt)
df %>%
  gt() %>%
  tab_style(
    style = cell_fill(color = "lightgreen"),
    locations = cells_body(rows = `above threshold` == TRUE)
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 04:54:07