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

如何用R语言实现两向量逐元素取最小值(含NA值处理)

解决方案

方法1:使用基础R的pmin()函数

pmin()函数专门用于逐元素取多个向量的最小值,配合na.rm = TRUE参数可以完美匹配需求:

  • 两个元素均非NA时,返回较小值
  • 其中一个为NA时,返回非NA元素
  • 两者均为NA时,返回NA

代码示例:

a <- c(4, NA, 12, 16, NA)
b <- c(1, 2, 3, NA, NA)
result <- pmin(a, b, na.rm = TRUE)
# 输出结果:[1]  1  2  3 16 NA

方法2:自定义逐元素处理函数

如果需要更直观地体现规则逻辑,可用mapply()配合自定义函数实现:

a <- c(4, NA, 12, 16, NA)
b <- c(1, 2, 3, NA, NA)

result <- mapply(function(x, y) {
  if (is.na(x) && is.na(y)) {
    NA
  } else if (is.na(x)) {
    y
  } else if (is.na(y)) {
    x
  } else {
    min(x, y)
  }
}, a, b)

# 输出结果:[1]  1  2  3 16 NA

该函数完全按照规则逐元素判断:先检查是否均为NA,再处理单NA场景,最后取非NA元素的最小值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:09:35