Создайте новый столбец в кадре данных, который включает два года после указанной даты - PullRequest
1 голос
/ 26 октября 2019

Я хотел бы добавить столбец даты в кадре данных. Столбец будет включать текущую дату и тот же день в течение следующих двух лет. Например, рассмотрим фрейм данных df

Date      Index Group
12/31/2012  A   1
12/31/2013  B   1
12/31/2014  B   2

Я хочу изменить столбец Date на следующий df2

Date    Index   Group
12/31/2012  A   1
12/31/2013  A   1
12/31/2014  A   1
12/31/2013  B   1
12/31/2014  B   1
12/31/2015  B   1
12/31/2014  B   2
12/31/2015  B   2
12/31/2016  B   2

Это то, что я пробовал:

library(lubridate)
library(dplyr)

df2 = df1 %>% mutate(Date = Date + years(2))

1 Ответ

1 голос
/ 26 октября 2019

Ниже приведено решение:

Генерируемые данные:

example<-data.frame( Date = c("12/31/2012", "12/31/2013", "12/31/2014"), index = c("A", "B", "B"), group = c(1,1,2))
print(example)

выход

        Date index group
1 2012-12-31     A     1
2 2013-12-31     B     1
3 2014-12-31     B     2

Код решения:

library(lubridate)
library(dplyr)


example[,1]<-mdy(example[,1])
df1<-example %>% mutate(Date = Date%m+% years(1))
df2<-example %>% mutate(Date = Date%m+% years(2))
final_df<-rbind(example,df1,df2)
print(final_df)

выход

        Date index group
1 2012-12-31     A     1
2 2013-12-31     B     1
3 2014-12-31     B     2
4 2013-12-31     A     1
5 2014-12-31     B     1
6 2015-12-31     B     2
7 2014-12-31     A     1
8 2015-12-31     B     1
9 2016-12-31     B     2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...