【发布时间】:2018-10-20 01:14:43
【问题描述】:
[编辑以反映更好的例子]
假设我有一个这样的数据框:
df <- data.frame(x = c("A","A","B", "B"), year = c(2001,2004,2002,2005))
> df
x year
1 A 2001
2 A 2004
3 B 2002
4 B 2005
如何在保留x 的同时将year 增加1?我想填写year,所以顺序是这样的:
x year
1 A 2001
2 A 2002
3 A 2003
4 A 2004
5 B 2002
6 B 2003
7 B 2004
8 B 2005
谁能推荐一个这样做的好方法?
@user 推荐这种方法:
> data.frame(year = min(df$year):max(df$year)) %>%
full_join(df) %>%
fill(x)
Joining, by = "year"
year x
1 2001 A
2 2002 B
3 2003 B
4 2004 A
5 2005 B
但是,这与所需的输出不匹配。
【问题讨论】:
-
修改数据的解决方案将更加简单。只需
tidyr::complete就足够了。看看我的回答。
标签: r dataframe dplyr tidyverse