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

在R语言中为DataFrame添加基于列值条件的Result列

在R中为DataFrame添加条件判断列

你有这样一个DataFrame:

df <- structure(list(ID = c("A142867.12", "F134242.15", "H136244.11", "Y184937.13"), 
                     Name = c("BB", "PP", "II", "WW"), 
                     qusa = c(10.0341, 12.7213, 0.157605, 0), 
                     nhg = c(24.7632, 50.562, 0.247947, 0.164736 ), 
                     opk = c(26.931, 5.9474, 0.79539, 0)), 
                class = "data.frame", row.names = c(NA, -4L))

需要在末尾添加Result列,规则是:当该行的qusa、nhg、opk三个值全部大于等于1.2时标记为"Pass",否则标记为"-"。

方法1:使用Base R实现

可以利用rowSums快速判断每行是否满足所有条件,结合ifelse生成结果列:

# 计算每行中满足 ≥1.2 的列数,等于3则说明三个列全部符合要求
df$Result <- ifelse(rowSums(df[, c("qusa", "nhg", "opk")] >= 1.2) == 3, "Pass", "-")

方法2:使用dplyr包(tidyverse风格更直观)

如果你习惯用tidyverse工具链,dplyr的mutate配合if_all会让逻辑更清晰:

library(dplyr)

df <- df %>%
  mutate(Result = if_all(c(qusa, nhg, opk), ~ .x >= 1.2) %>% 
           ifelse(., "Pass", "-"))

验证结果

运行上述任意一段代码后,你的DataFrame会和预期一致:

> df
          ID Name     qusa      nhg     opk Result
1 A142867.12   BB 10.03410 24.76320 26.9310   Pass
2 F134242.15   PP 12.72130 50.56200  5.9474   Pass
3 H136244.11   II  0.15760  0.24795  0.7954      -
4 Y184937.13   WW  0.00000  0.16474  0.0000      -

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:50:33