按 Dplyr 中的计数列扩展数据集

Expand dataset by count column in Dplyr

我有一个数据集如下:

library(tidyverse)

df <- data.frame(
        report_date = c("2020-03-14", "2020-03-14", "2020-03-19", "2020-03-20"),
         start_date = c("2020-03-06", "2020-03-10", "2020-03-11", "2020-03-11"),
              count = c(1, 2, 1, 3)
     )

看起来像:

  report_date start_date count
1  2020-03-14 2020-03-06     1
2  2020-03-14 2020-03-10     2
3  2020-03-19 2020-03-11     1
4  2020-03-20 2020-03-11     3

我想使用值计数执行转换 - 又名 - 重复 每行 n 次,作为起始行的计数。 我认为如果我按如下所示显示所需的结果就很清楚了:

df_final <- data.frame(
               report_date = c("2020-03-14", "2020-03-14", "2020-03-14", "2020-03-19",
                               "2020-03-20", "2020-03-20", "2020-03-20"),
                start_date = c("2020-03-06", "2020-03-10", "2020-03-10", "2020-03-11",
                               "2020-03-11", "2020-03-11", "2020-03-11"),
                     count = c(1, 1, 1, 1, 1, 1, 1)
            )

  report_date start_date count
1  2020-03-14 2020-03-06     1
2  2020-03-14 2020-03-10     1
3  2020-03-14 2020-03-10     1
4  2020-03-19 2020-03-11     1
5  2020-03-20 2020-03-11     1
6  2020-03-20 2020-03-11     1
7  2020-03-20 2020-03-11     1

谢谢!

我们可以使用uncount复制然后创建'count'

library(dplyr)
library(tidyr)
df %>% 
    uncount(count) %>% 
    mutate(count = 1) 

-输出

 report_date start_date count
1  2020-03-14 2020-03-06     1
2  2020-03-14 2020-03-10     1
3  2020-03-14 2020-03-10     1
4  2020-03-19 2020-03-11     1
5  2020-03-20 2020-03-11     1
6  2020-03-20 2020-03-11     1
7  2020-03-20 2020-03-11     1