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

使用R语言计算data.frame的每日平均价格

按日期计算每日平均价格并新增列

以下是两种常用的实现方式,适配你的需求:

先构造示例数据(和你提供的结构一致):

df <- data.frame(
  date = as.POSIXct(c("2017-01-01 01:00:00", "2017-01-01 01:00:00", 
                      "2017-01-01 05:00:00", "2017-01-01 04:00:00",
                      "2017-01-02 08:00:00", "2017-01-02 08:00:00",
                      "2017-01-02 07:00:00")),
  price = c(10,10,25,30,10,30,20)
)

方法一:Base R 原生实现

用ave()函数按日期分组计算均值,先提取纯日期用于分组:

# 提取日期部分(去除时分秒)
df$day <- as.Date(df$date)
# 新增avg_price列,按day分组计算price的平均值
df$avg_price <- ave(df$price, df$day, FUN = mean)
# 可选:删除临时的day列
df$day <- NULL

方法二:dplyr 工具实现

如果习惯用tidyverse系列,分组+新增列的逻辑更直观:

library(dplyr)

df <- df %>%
  # 按纯日期分组
  group_by(day = as.Date(date)) %>%
  # 新增avg_price列,赋值为当日price的均值
  mutate(avg_price = mean(price)) %>%
  # 取消分组(后续操作无需分组时建议执行)
  ungroup() %>%
  # 可选:删除临时的day列
  select(-day)

运行后即可得到你示例中的结果,同一日期的所有行都会填充当日的平均价格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:09:30