【发布时间】:2020-05-19 22:31:52
【问题描述】:
我正在研究一个福利工资补贴计划的数据集,其中每个工人的工资结构如下:
df <- structure(list(wage_1990 = c(13451.67, 45000, 10301.67, NA, NA,
8726.67, 11952.5, NA, NA, 7140, NA, NA, 10301.67, 7303.33, NA,
NA, 9881.67, 5483.33, 12868.33, 9321.67), wage_1991 = c(13451.67,
45000, 10301.67, NA, NA, 8750, 11952.5, NA, NA, 7140, NA, NA,
10301.67, 7303.33, NA, NA, 9881.67, 5483.33, 12868.33, 9321.67
), wage_1992 = c(13451.67, 49500, 10301.67, NA, NA, 8750, 11952.5,
NA, NA, 7140, NA, NA, 10301.67, 7303.33, NA, NA, 9881.67, NA,
12868.33, 9321.67), wage_1993 = c(NA, NA, 10301.67, NA, NA, 8750,
11958.33, NA, NA, 7140, NA, NA, 10301.67, 7303.33, NA, NA, 9881.67,
NA, NA, 9321.67), wage_1994 = c(NA, NA, 10301.67, NA, NA, 8948.33,
11958.33, NA, NA, 7140, NA, NA, 10301.67, 7303.33, NA, NA, 9881.67,
NA, NA, 9321.67), wage_1995 = c(NA, NA, 10301.67, NA, NA, 8948.33,
11958.33, NA, NA, 7140, NA, NA, 10301.67, 7303.33, NA, NA, 9881.67,
NA, NA, 9321.67), wage_1996 = c(NA, NA, 10301.67, NA, NA, 8948.33,
11958.33, NA, NA, 7291.67, NA, NA, 10301.67, 7303.33, NA, NA,
9881.67, NA, NA, 9321.67)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -20L))
我想做以下事情: 1-创建一个变量,显示每个工人的工资年增长率或缺乏。
我面临的实际问题是,每个观察都排成一行,而第一个工人在 1990 年加入该计划,其他人可能在 1993 年或 1992 年加入。因此,有没有办法应用增长率根据每个工人工作的具体年份,而不是对所有观察结果应用通用增长公式?
My expected output for each row would be having a new column
average wage growth rate
1- 15%
2- 9%
3- 12%
【问题讨论】:
-
请使用
dput而不是str -
谢谢,有帮助吗?
-
数据框中的三列长度不同。你能解释一下吗?
标签: r dataframe dplyr data.table tidyverse