我知道答案必须在那里,但我无法弄清楚如何说出问题.
我想计算data.frame中值之间的差异.
由此:
f <- data.frame(year=c(2004, 2005, 2006, 2007), value=c(8565, 8745, 8985, 8412))
year value
1 2004 8565
2 2005 8745
3 2006 8985
4 2007 8412
Run Code Online (Sandbox Code Playgroud)
对此:
year value diff
1 2004 8565 NA
2 2005 8745 180
3 2006 8985 240
4 2007 8412 -573
Run Code Online (Sandbox Code Playgroud)
(即当年的价值减去上一年的价值)
但我不知道如何在另一行创建的行中得到结果.有帮助吗?
谢谢,汤姆
Sha*_*ane 11
有很多不同的方法可以做到这一点,但这里有一个:
f[, "diff"] <- c(NA, diff(f$value))
Run Code Online (Sandbox Code Playgroud)
更一般地说,如果要引用相对行,可以lag()直接使用或直接使用索引:
f[-1,"diff"] <- f[-1, "value"] - f[-nrow(f), "value"]
Run Code Online (Sandbox Code Playgroud)