我希望为员工获取一个包含横截面工资数据的数据集,并创建一个大的不间断时间序列,并在此过程中估算值。假设我有:
name <- c("carl","carl","bob","rick","rick","rick","rick")
sex <- c(rep("M",7))
salary <- c(18000, 14000, 34000, 11000, 23000, 23000, 25000)
date <- as.Date(c("2007-04-30","2007-07-30","2009-12-09","2006-01-01",
"2008-01-01","2009-12-09", "2010-01-01"))
salaries <- data.frame(name,sex,salary,date)
salaries
name sex salary date
carl M 18000 2007-04-30
carl M 14000 2007-07-30
bob M 34000 2009-12-09
rick M 11000 2006-01-01
rick M 23000 2008-01-01
rick M 23000 2009-12-09
rick M 25000 2010-01-01
正如我们所看到的,可怜的卡尔在 7 月份减薪 4k。在此之前,他的收入为 18k。在他被削减之前的3个月都是这种情况,但我的数据并没有反映这一点。我想制作一张漂亮的图片来展示这种趋势,但首先我需要将数据更改为如下所示(其中 * 表示估算值):
head(salaries)
name sex salary date change
carl M 18000 2007-04-30 0
carl M 18000 2007-05-30* 0
carl M 18000 2007-06-30* 0
carl M 14000 2007-07-30 1
bob M 34000 2009-12-09 0
rick M 11000 2006-01-01 0
rick M 11000 2006-02-01* 0
... .. ....... ...... ....
rick M 11000 2007-12-01* 0
rick M 23000 2008-01-01 1
rick M 23000 2008-02-01* 1
.... ...... ...... ........
rick M 23000 2009-12-09 1
rick M 25000 2010-01-01 2
所以我想估算中间值,并在发生变化时进行标记。像鲍勃这样从未有过薪水变动的人,只会停留在 0 上。但是,经历过多次薪水变动的 rick 每次都会被标记,因此我们知道变动发生的时间和数字。我只对将月份作为分析单位感兴趣,但知道如何每天进行估算也会很有用。