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

如何计算不同长度R向量的逐位元素均值并存储为数组

计算不同长度R向量的逐位元素均值

原始向量定义

a <- c(1) # 长度为1
b <- c(4.4,3.5) # 长度为2
c <- c(5.6,7.8,6.0) # 长度为3
d <- c(0.8,6.9,8.8,5.8) # 长度为4
e <- c(1.8,2.5,2.3,6.5,1.1) # 长度为5

需求说明

计算所有向量的逐位元素均值:

  • 第1位:取5个向量的第1个元素,均值为(a[1]+b[1]+c[1]+d[1]+e[1])/5
  • 第2位:取4个长度≥2的向量的第2个元素,均值为(b[2]+c[2]+d[2]+e[2])/4
  • 第3位:取3个长度≥3的向量的第3个元素,均值为(c[3]+d[3]+e[3])/3
  • 第4位:取2个长度≥4的向量的第4个元素,均值为(d[4]+e[4])/2
  • 第5位:取1个长度≥5的向量的第5个元素,均值为e[5]/1

解决方案

方法1:手动计算(适合少量向量)

直接按规则逐位计算,结果存入向量:

# 初始化结果向量,长度等于最长向量的长度
result <- numeric(length(e))

# 计算每一位均值
result[1] <- mean(c(a[1], b[1], c[1], d[1], e[1]))
result[2] <- mean(c(b[2], c[2], d[2], e[2]))
result[3] <- mean(c(c[3], d[3], e[3]))
result[4] <- mean(c(d[4], e[4]))
result[5] <- mean(e[5])

# 输出结果
result

方法2:自动化计算(适合大量向量)

通过列表和矩阵处理,自动适配任意数量和长度的向量:

# 将所有向量存入列表
vec_list <- list(a, b, c, d, e)

# 获取最长向量的长度
max_length <- max(sapply(vec_list, length))

# 将每个向量填充NA至最长长度,合并为矩阵
vec_matrix <- do.call(rbind, lapply(vec_list, function(vec) {
  c(vec, rep(NA, max_length - length(vec)))
}))

# 计算每列均值(忽略NA)
result <- colMeans(vec_matrix, na.rm = TRUE)

# 输出结果
result

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:36:29