通过添加0扩展dataframe

通过添加0扩展dataframe,r,dataframe,R,Dataframe,我有一个如下所示的数据帧 # Year A B # 1 2000 1 1 # 2 2002 0 2 # 3 2005 0 1 我想加上中间的几年,以产生如下产出: # Year A B # 1 2000 1 1 # 2 2001 0 0 # 3 2002 0 2 # 4 2003 0 0 # 5 2004 0 0 # 6 2005 0 1 在tidyr中使用complete和full\seq library(tidyr) complete(df, Year = full_seq(Y

我有一个如下所示的数据帧

#   Year A B
# 1 2000 1 1
# 2 2002 0 2
# 3 2005 0 1
我想加上中间的几年,以产生如下产出:

#   Year A B
# 1 2000 1 1
# 2 2001 0 0
# 3 2002 0 2
# 4 2003 0 0
# 5 2004 0 0
# 6 2005 0 1

tidyr
中使用
complete
full\seq

library(tidyr)

complete(df, Year = full_seq(Year, 1), fill = list(A = 0, B = 0))

# A tibble: 6 x 3
   Year     A     B
  <dbl> <dbl> <dbl>
1  2000     1     1
2  2001     0     0
3  2002     0     2
4  2003     0     0
5  2004     0     0
6  2005     0     1
library(tidyr)
完成(df,年份=完整(年份,1),填充=列表(A=0,B=0))
#一个tibble:6x3
A年B年
1  2000     1     1
2  2001     0     0
3  2002     0     2
4  2003     0     0
5  2004     0     0
6  2005     0     1

我们可以使用
expand.grid
merge
base R

out <- merge(expand.grid(Year = min(df$Year):max(df$Year)), df, all.x = TRUE)
out[is.na(out)] <- 0
out
df <- data.frame(Year = c(2000, 2002, 2005), A = c(1, 0, 0), B = c(1, 2, 1))