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

如何在R语言中计算指定日期后各站点的Result均值

解决方案

1. 先把日期列转成日期格式

原始数据里的Date和ChangeDate是字符串格式,没法直接比较大小,得先转成R能识别的日期类型:

# 注意日期格式是dd/mm/yyyy,所以用format="%d/%m/%Y"
Merged$Date <- as.Date(Merged$Date, format = "%d/%m/%Y")
Merged$ChangeDate <- as.Date(Merged$ChangeDate, format = "%d/%m/%Y")

2. 用Base R的aggregate实现需求

在你原来的代码基础上,先筛出符合条件的记录,再计算均值:

# 只保留Date严格晚于ChangeDate的行
filtered_data <- Merged[Merged$Date > Merged$ChangeDate, ]

# 按Site分组算Result的均值
OPmean <- aggregate(Result ~ Site, data = filtered_data, FUN = mean, na.rm = TRUE)

# 把列名改成你要的格式
colnames(OPmean) <- c("Site", "Mean Result")

3. 用dplyr写更简洁的代码

如果平时用tidyverse的话,代码会更直观:

library(dplyr)

OPmean <- Merged %>%
  # 先转日期格式
  mutate(
    Date = as.Date(Date, format = "%d/%m/%Y"),
    ChangeDate = as.Date(ChangeDate, format = "%d/%m/%Y")
  ) %>%
  # 过滤出符合条件的记录
  filter(Date > ChangeDate) %>%
  # 按Site分组计算均值
  group_by(Site) %>%
  summarise(`Mean Result` = mean(Result, na.rm = TRUE)) %>%
  ungroup()

最终结果

运行完代码后,得到的OPmean就是你想要的格式:

SiteMean Result
22000.05
22010.01
22030.02

内容的提问来源于stack exchange,提问作者Dani.Elizabeth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:39:19