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

在R中如何将列表层级对应月份天数并对列表内数据执行算术运算

最优实现方案

你生成的列表l的索引刚好和月份1~12一一对应(l[[1]]对应1月,l[[12]]对应12月),完全不需要额外用which做匹配,直接按索引取值计算即可,运算效率最高:

# 直接使用预定义的有序ndays向量计算,无需调用mthdays数据框
l_updated <- lapply(seq_along(l), function(x) {
  # 对应月份的天数直接按索引取ndays
  l[[x]]$Data <- l[[x]]$Data * ndays[x]
  return(l[[x]])
})

如果你需要严格通过mthdays数据框匹配(比如后续列表顺序可能和月份不对应的场景),可以用匹配的写法:

# 基于mthdays匹配的通用写法
l_updated <- lapply(seq_along(l), function(x) {
  target_days <- mthdays$ndays[mthdays$mth == x]
  l[[x]]$Data <- l[[x]]$Data * target_days
  return(l[[x]])
})

注意事项

R中数组与标量的乘法是自动按元素广播的,你的Data字段是array类型,直接乘以天数标量不需要额外调整维度,运算逻辑和你需求完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:06:00