例如,我有以下数据集:
wage <- c(2100, 2100, 2500, 2400, 2300, 2200, 2700, 2300, 2900, 3000)
timestamp <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
example <- data.frame(wage, age)
example
我如何制作另一个数据框来显示相对于起始工资的百分比变化,我说哪一行是起始工资。例如,假设我要从第3行开始并在第9行结束。第一个值当然是0%的变化,即工资2500,下一个值将是(2400-2500)* 100/2400 = -4 %,此后的下一个值为(2300-2500)* 100/2300 = -8%,依此类推,总共7行(第3-9行)。
所以它应该看起来像这样:
timestamp wage%change
3 0
4 -4
5 -8
6 -12
7 8
8 -8
9 16
谢谢!
一种使用方式dplyr
:
library(dplyr)
start <- 3
end <- 9
example %>%
slice(start:end) %>%
mutate(wage_change = (wage - first(wage)) * 100/first(wage))
# wage timestamp wage_change
#1 2500 3 0
#2 2400 4 -4
#3 2300 5 -8
#4 2200 6 -12
#5 2700 7 8
#6 2300 8 -8
#7 2900 9 16
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句