【发布时间】:2015-01-20 07:44:57
【问题描述】:
虽然我发现了几个类似的问题,但我在 base R 中找不到解决问题的简单方法。 我想计算一组数据(这里是 y 值)的同比百分比变化,并将这个“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 文件来加载数据该怎么办?我必须将此数据转换为数据框吗?
【问题讨论】:
-
通过使用
read.csv/read.table,您将直接获得data.frame。无需任何转换。根据您的df,预期输出是什么? -
您在寻找
y[-1]/y[-7]吗?或者更一般的df$y[-1]/df$y[-nrow(df)] -
嗯,非常感谢您的回答。我正在寻找类似 @987654327@ 的东西,但如果我这样做
transform df = (df, new.col = c(NA, df$y[-1]/df$y[-nrow(df)]-1))我会收到一条错误消息:Error: unexpected symbol in "transform df" -
你转换需要改变
transform(df, new.col=c(NA, df$y[-1]/df$y[-nrow(df)]-1)) -
显然我没有包“data.table”
标签: r time-series