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

在R语言中按股票分组计算日收益率的实现方法

R语言实现分组计算股票日收益率的方案

方法1:使用dplyr包(推荐,代码可读性高)

这是目前R语言数据分析领域最常用的实现方式:

# 加载依赖包,未安装的话先运行 install.packages("dplyr")
library(dplyr)

# 你自己的实际数据替换这里的示例构造代码即可
df <- data.frame(
  Date = rep(c("10-01", "10-02", "10-03"), each = 3),
  Stock_Name = rep(c("A", "B", "C"), 3),
  Price = c(100,5,2,110,10,3,121,20,6)
)

# 核心计算逻辑
df_res <- df %>%
  group_by(Stock_Name) %>% # 按股票分组
  arrange(Date, .by_group = TRUE) %>% # 保证分组内按日期升序排列,避免乱序导致计算错误
  mutate(Return = Price / lag(Price) - 1) %>% # 计算日收益率,首日无上期数据自动返回NA
  ungroup()

# 输出结果
print(df_res)

方法2:基础R实现(无需安装第三方包)

如果不想依赖第三方包,可以用基础函数ave实现:

# 先排序保证日期顺序正确
df_sorted <- df[order(df$Stock_Name, df$Date), ]
# 分组计算收益率
df_sorted$Return <- ave(df_sorted$Price, df_sorted$Stock_Name, FUN = function(x) {
  c(NA, diff(x) / x[-length(x)])
})

两种方法输出的结果都和你给出的预期格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:03