Я надеюсь взять набор данных с перекрестными данными о заработной плате сотрудников и создать большой непрерывный временной ряд, попутно вводя значения. Предположим, у меня есть:
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
Как мы видим, бедняге Карлу в июле сократили зарплату на 4 тысячи. До этого он зарабатывал 18к. Так было в течение 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. Но Рик, у которого было несколько изменений зарплаты, каждый раз помечается, поэтому мы знаем, когда произошло изменение и какой это номер. Меня интересует только месяц как единица анализа, но было бы полезно знать, как вычислять также и день.