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

R语言:基于日期规则修改列表元素的实现求助

实现方案

以下是符合需求的R语言实现代码,同时附带步骤说明:

# 原始数据
list <- list()
list$date <- structure(19297:19310, class = "Date")
list$value <- c(100,200,300,100,200,300,100,200,300,100,200,500,800)
list$temp2 <- c(1000,2000,3000,1000,2000,3000,1000,2000,3000,1000,2000,5888,9887)

# 1. 定位第一周内value最大值的位置
first_week_values <- list$value[1:7]
max_positions <- which(list$value[1:7] == max(first_week_values))

# 2. 先对所有元素应用规则1:value * 0.5 * temp2
list$value <- list$value * 0.5 * list$temp2

# 3. 对第一周的最大值应用例外规则:原始值翻倍
# 先还原原始value值,再执行翻倍操作
original_max_vals <- list$value[max_positions] / (0.5 * list$temp2[max_positions])
list$value[max_positions] <- original_max_vals * 2

关键步骤说明

  • 定位最大值位置:使用which函数可以自动处理第一周内存在多个最大值的情况(比如示例中第3、6天的value均为300,都会被选中)。
  • 规则优先级:先批量应用规则1,再单独覆盖例外场景,避免重复判断逻辑,提升代码效率。
  • 原始值还原:通过反向计算(当前值除以0.5*temp2)得到原始value,确保例外规则使用的是未修改前的数值。

内容的提问来源于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.10 03:15:38