计算5天周期FaceValue百分比增长率的R代码问题咨询
解决方案
运行失败原因
FaceValue列当前为带货币符号₦、千分位逗号的字符类型,不支持数值运算- dplyr管道内直接使用列名即可,不需要加
value_performance$前缀,该写法会打乱管道内的取值逻辑 - 若你的业务需求是计算5天周期的累计增长率(即第5天对比第1天的增长率),原代码的
lag(FaceValue,5)参数有误,该写法会取当前行往前数第5行的值,第5行往前数5行不存在,会返回NA,需要调整参数为4。
正确实现代码
library(dplyr) value_performance <- value_performance %>% # 清洗FaceValue列,转为可计算的数值格式 mutate(FaceValue = as.numeric(gsub("[₦,]", "", FaceValue)), # 计算5天周期增长率,若需要间隔5天对比则将n=4改为n=5 change_5d_growth = (FaceValue - lag(FaceValue, n = 4)) / lag(FaceValue, n = 4) * 100)
样本计算结果验证
使用你提供的5天样本数据运行后,第5天的增长率结果约为6.87%,计算逻辑如下:
(₦77,026,183.71 - ₦72,077,680.94) / ₦72,077,680.94 * 100 ≈ 6.87%
内容的提问来源于stack exchange,提问作者Yomi.blaze93
相关产品推荐
相关产品推荐

