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

如何为多列编写Simple returns(简单收益率)的计算代码?

修正简单收益率计算的R代码错误

你的代码核心错误在于lag(.x-1)的逻辑:这会先将当前值减1再取滞后,完全偏离了公式要求的「用当期值除以滞后一期的当期值」的逻辑。

修正后的代码如下:

stockindices = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/stockInd.csv')

library(tidyverse)

simple_returns <- stockindices %>%  
  mutate(across(3:ncol(.), ~ (.x / lag(.x)) - 1))

关键修正点:

  • 将lag(.x-1)改为lag(.x):lag(.x)会正确获取当前列的上一行数据(即公式中的Pt-1),再用当期值(Pt)做除法运算后减1,完全匹配简单收益率的计算公式。
  • 计算结果的第一行会返回NA,这是正常现象——因为第一期没有前一期数据可以参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:48:11