gpt4 book ai didi

r - R 的同比百分比变化

转载 作者:行者123 更新时间:2023-12-04 23:20:39 25 4
gpt4 key购买 nike

尽管我发现了几个类似的问题,但我无法在基础 R 中找到解决问题的简单方法。
我想从一组数据(此处为 y 值)计算 yoy 百分比变化,并将此“Delta”系列作为新列添加到我的数据框中。

例如:

>x = c(2000,2001,2002,2003,2004,2005,2006)   
>y = c(100,104,106,108,112,115,121)
>df = data.frame(x,y)

如果我通过读取 .csv 文件加载数据,该怎么办?我是否必须将此数据转换为数据框?

最佳答案

data.table_1.9.5引入新功能 shift ,默认情况下为 type='lag'n=1L .如果需要更改,可以指定这些参数。 setDT转换 data.framedata.table ,根据条件 ( := ) 创建一个新列 ( y/shift(y)... )

library(data.table)
setDT(df)[, new.col := y/shift(y) - 1]

或者在 R 基础中(来自@David Arenburg 的评论)
transform(df, new.col=c(NA,y[-1]/y[-nrow(df)]-1))

关于r - R 的同比百分比变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28040043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com