【发布时间】:2020-07-17 06:33:17
【问题描述】:
我正在尝试根据月份和年份值重复行。
目前,我的 df 看起来像这样:
Country Date Year Month
Angola 1/2008 2008 1
Angola 6/2020 2020 6
Benin 1/2013 2013 1
Benin 6/2020 2020 6
Benin 7/2014 2014 7
对于每个国家/地区,我想重复观察结果,使 df 看起来像这样:
Country Year Month
Angola 2008 1
Angola 2008 2
Angola 2008 3
Angola 2008 4
Angola 2008 5
Angola 2008 6
etc... all the way until 06/2020 for Angola
有一个非常优雅的解决方案可以根据值重复行 (from this post)。如果我仅根据年份重复行,则解决方案的语法将如下所示:
df<-df %>%
mutate(Year = readr::parse_number(Year)) %>%
group_by(Country) %>%
complete(Year =min(Year):max(Year))
但是,我想重复时间范围,不仅基于年份,还基于月份。我还没有找到一个很好的方法来调整这种语法来做到这一点。我尝试将 Date 变量解析为日期,然后根据该日期重复,但这会为变量分配一个日期,并且重复行的次数远远超过我需要的次数。
df<-df %>%
mutate(Date = readr::parse_datetime(Date)) %>%
group_by(Country) %>%
complete(Date =min(Date):max(Date))
关于如何做到这一点的任何想法?更愿意调整我一直在尝试的语法,但也对新的可能性持开放态度
【问题讨论】: