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

如何按公司分组将日度股价数据转换为周度数据并提取每周最后值

R语言解决方案

以下代码基于tidyverse生态实现需求,适配你提供的tibble数据结构:

1. 加载依赖包

# 未安装依赖先执行:install.packages(c("tidyverse", "lubridate"))
library(tidyverse)
library(lubridate)

2. 核心计算逻辑

result <- data %>%
  # 生成日期维度分组字段,week_start参数可调整周起始日:1=周一、7=周日
  mutate(
    year = year(tarih),
    month = month(tarih),
    week = week(tarih, week_start = 1)
  ) %>%
  # 按个股、年、月、周多层分组
  group_by(stock_code, year, month, week) %>%
  # 提取每组内日期最大的记录,即对应周的最后一个交易日
  filter(tarih == max(tarih)) %>%
  ungroup() %>%
  # 调整输出格式匹配要求
  mutate(
    # 日期转为日.月.年格式
    tarih = format(tarih, "%d.%m.%Y"),
    # 价格保留两位小数,用逗号做小数点
    adj_close_price = format(round(adj_close_price, 2), nsmall = 2, decimal.mark = ",")
  ) %>%
  # 按个股倒序、日期倒序排序,和示例输出顺序一致
  arrange(desc(stock_code), desc(tarih)) %>%
  # 保留需要的输出列
  select(tarih, stock_code, adj_close_price)

3. 结果导出/查看

# 查看结果前几行
head(result)
# 导出为制表符分隔的文本文件,匹配示例格式
write_delim(result, "周度收盘价结果.txt", delim = "\t")

补充说明

如果你的周度定义和默认规则不同,仅需要调整week()函数中的week_start参数即可:比如要把周五作为周最后一个交易日,设置week_start = 6即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 11:45:04