例如,假设我有以下数据集:
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谢谢!
发布于 2020-04-16 17:47:17
使用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 16https://stackoverflow.com/questions/61247136
复制相似问题