R 如何在给定起点和终点的 Tibble 中生成序列

R How to Generate Sequences in a Tibble Given Start and End Points

我想不出如何以整洁的方式做到这一点。

我有一个table如下:

tibble( 
  Min = c(1, 5, 12, 13, 19), 
  Max = c(3, 11, 12, 14, 19), 
  Value = c("a", "bb", "c", "d", "e" ) 
)

我想从中生成另一个 table,如下所示

tibble(
  Row = c(1:3, 5:11, 12:12, 13:14, 19:19), 
  Value = c( rep("a", 3), rep("bb", 7), "c", "d", "d", "e" ) 
)

感谢大家提出的任何建议。唯一想到的'solutions'有点繁琐

1) 如果 DF 是输入则:

library(dplyr)

DF %>%
 group_by(Value) %>%
 group_modify(~ tibble(Row = seq(.$Min, .$Max))) %>%
 ungroup

给予:

# A tibble: 14 x 2
   Value   Row
   <chr> <int>
 1 a         1
 2 a         2
 3 a         3
 4 bb        5
 5 bb        6
 6 bb        7
 7 bb        8
 8 bb        9
 9 bb       10
10 bb       11
11 c        12
12 d        13
13 d        14
14 e        19

2) 这个创建一个包含小标题的列表列 L,然后取消嵌套。重复的 Value 个元素对这个没问题。

library(dplyr)
library(tidyr)

DF %>%
 rowwise %>%
 summarize(L = list(tibble(Value, Row = seq(Min, Max)))) %>%
 ungroup %>%
 unnest(L)