r - 添加 value=0 的行,以按组 dplyr R 具有相同的行数

标签 r dplyr

我有一个数据框,其中包含按国家/地区分组和包含日期的行,在某些国家/地区没有某些日期的行,我想用 0 值填充这些缺失的行

例如:

dd <- tibble( region=rep("Aus",8), date=c("2000-11-01","2000-12-01","2001-01-01","2001-02-01","2001-03-01","2001-04-01","2001-05-01","2001-06-01"), value=runif(8))
dd <- bind_rows(dd,tibble( region=rep("Est",6), date=c("2000-11-01","2001-01-01","2001-02-01","2001-04-01","2001-05-01","2001-06-01"), value=runif(6)))

我需要为缺少日期 2000-12-01 2001-03-01 的组 Est 添加两行>值=0

我不知道如何使用 dplyr 或 base 来实现一般情况

最佳答案

dd %>%
  pivot_wider(names_from = date, values_fill = 0) %>%
  pivot_longer(cols = -region)

给出:

# A tibble: 16 x 3
   region name        value
   <chr>  <chr>       <dbl>
 1 Aus    2000-11-01 0.313 
 2 Aus    2000-12-01 0.842 
 3 Aus    2001-01-01 0.314 
 4 Aus    2001-02-01 0.757 
 5 Aus    2001-03-01 0.968 
 6 Aus    2001-04-01 0.169 
 7 Aus    2001-05-01 0.697 
 8 Aus    2001-06-01 0.873 
 9 Est    2000-11-01 0.132 
10 Est    2000-12-01 0     
11 Est    2001-01-01 0.0785
12 Est    2001-02-01 0.378 
13 Est    2001-03-01 0     
14 Est    2001-04-01 0.580 
15 Est    2001-05-01 0.536 
16 Est    2001-06-01 0.109

关于r - 添加 value=0 的行,以按组 dplyr R 具有相同的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65133211/

相关文章:

r - 如何将条件汇总为 R 中的单个变量?

r - 作为带有不必要变量的线性回归的结果,R 是否总是返回 NA 作为系数?

r - 生成日期序列

r - 如何同时对数组中的所有矩阵进行计算

r - ifelse 在 R 中什么都不做

r - 在 dplyr 中使用 c() 聚合字符串汇总或聚合

r - 根据列数在数据框列表中创建新变量

r - 使用 R 对随机生成的横断面进行有效排序

r - 输入 `typ` 无法回收到 R 中的大小

r - 条件连接数据帧 R