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

R语言中按特定日期规则对列表内数值进行缩放的实现方法

实现需求的R代码方案

先把你的原始数据放出来:

list1 <- list()
list1$date <- c("01/06/2002", "02/06/2002", "03/06/2002", 
"04/06/2002", "05/06/2002", "01/07/2002", "19/07/2002", "11/07/2002", 
               "15/07/2002", "29/07/2002", "03/07/2002")

list1$value1 <- c(100,200,300,100,200,300,100,200,300,100,200)

接下来按规则处理value1,步骤如下:

  1. 转换日期格式并提取关键信息
    原始日期是字符串格式,先转成标准日期格式,再提取日、年月分组标识,方便后续判断:

    # 用lubridate包处理日期(需要先安装install.packages("lubridate"))
    library(lubridate)
    list1$date <- dmy(list1$date)
    list1$day <- day(list1$date)
    list1$year_month <- floor_date(list1$date, "month")
    

    如果不想用额外包,用基础R也能实现:

    list1$date <- as.Date(list1$date, format = "%d/%m/%Y")
    list1$day <- as.integer(format(list1$date, "%d"))
    list1$year_month <- as.Date(format(list1$date, "%Y-%m-01"))
    
  2. 处理每月1-7日的最大值翻倍
    先按年月分组,找出每个月1-7日区间里的最大值,再给对应位置的value1翻倍:

    # 初始化缩放后的数值列
    list1$scaled_value <- list1$value1
    
    # 提取每个月1-7日的最大值
    max_1to7 <- tapply(
      list1$value1[list1$day %in% 1:7],
      list1$year_month[list1$day %in% 1:7],
      max
    )
    
    # 给对应最大值位置翻倍
    for (ym in names(max_1to7)) {
      target_idx <- list1$year_month == ym & list1$day %in% 1:7 & list1$value1 == max_1to7[ym]
      list1$scaled_value[target_idx] <- list1$scaled_value[target_idx] * 2
    }
    
  3. 处理每月28日及之后的数值翻倍
    直接筛选日数>=28的位置,将对应scaled_value翻倍:

    list1$scaled_value[list1$day >= 28] <- list1$scaled_value[list1$day >= 28] * 2
    

最后查看处理后的结果:

list1[c("date", "value1", "scaled_value")]

输出结果如下:

date value1 scaled_value
1  2002-06-01    100          100
2  2002-06-02    200          200
3  2002-06-03    300          600  # 6月1-7日最大值,翻倍
4  2002-06-04    100          100
5  2002-06-05    200          200
6  2002-07-01    300          600  # 7月1-7日最大值,翻倍
7  2002-07-19    100          100
8  2002-07-11    200          200
9  2002-07-15    300          300
10 2002-07-29    100          200  # 29日>=28,翻倍
11 2002-07-03    200          200

内容的提问来源于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:35:24