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

如何在R语言中基于两个现有变量的较小值创建新变量

在R中按行取两列最小值创建新变量

先模拟你的示例数据集:

df <- data.frame(
  a1 = c(3, 1, 0),
  a2 = c(2, 5, 7),
  row.names = c("x1", "x2", "x3")
)

方法1:基础R原生函数 pmin()

这是最简洁高效的方式,pmin() 会按行对多个向量取最小值,完全适配大数据集:

# 创建新变量b
df$b <- pmin(df$a1, df$a2)

# 查看结果
df
#    a1 a2 b
# x1  3  2 2
# x2  1  5 1
# x3  0  7 0

方法2:使用dplyr(tidyverse生态)

如果你习惯用tidyverse的语法,也可以结合mutate()实现:

library(dplyr)

# 直接用pmin在mutate中(高效)
df <- df %>% mutate(b = pmin(a1, a2))

# 或者用rowwise+min(适合需要扩展到更多列的场景)
df <- df %>%
  rowwise() %>%
  mutate(b = min(a1, a2)) %>%
  ungroup()

两种方法都不需要手动逐行设置,pmin()是矢量化操作,处理大规模数据集时性能表现优异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:50:33