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

如何在R中按分钟统计时间序列的价格与交易量汇总数据

R实现分钟级行情聚合方案

首先加载所需依赖包,使用dplyr做数据统计、lubridate做时间处理即可快速实现需求:

# 首次运行先安装依赖
install.packages(c("dplyr", "lubridate"))
# 加载包
library(dplyr)
library(lubridate)

步骤1:构造/读取原始数据

以下是示例数据构造代码,若为本地文件可替换为read.csv()/read.table()读取逻辑:

df <- data.frame(
  Date = c("19990104", "19990104", "19990104", "19990104", "19990104"),
  Time = c("14:11:14.34", "14:11:21.21", "14:11:36.35", "14:11:45.45", "14:11:56.11"),
  Price = c(220, 200, 221, 202, 215),
  Amount = c(100, 150, 200, 150, 100)
)

步骤2:时间字段处理

df_process <- df %>%
  # 拼接日期时间字段转为标准时间格式
  mutate(full_time = ymd_hms(paste(Date, Time)),
         # 按分钟截断时间,秒自动清零,作为分组维度
         group_time = floor_date(full_time, unit = "minute"))

步骤3:分组统计指标

result <- df_process %>%
  # 先按完整时间升序排序,保证首尾价格取数正确
  arrange(full_time) %>%
  # 按分钟分组
  group_by(group_time) %>%
  summarise(
    Start = first(Price), # 首笔价格
    End = last(Price), # 尾笔价格
    Low = min(Price), # 最低价格
    High = max(Price), # 最高价格
    Amount = sum(Amount), # 成交量总和
    .groups = "drop"
  ) %>%
  # 重命名时间字段符合输出要求
  rename(Time = group_time)

# 可选:如果需要输出字符串格式的时间,执行以下代码
result <- result %>%
  mutate(Time = format(Time, "%Y-%m-%d %H:%M:%S"))

注意事项

  • 若原始数据未按时间升序排列,必须执行arrange(full_time),否则会导致首尾价格统计错误
  • 该逻辑自动适配跨分钟、多交易日的批量数据处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:09:02