You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用dplyr递归生成指定结构的DataFrame?

寻找通用生成递归结构tibble的dplyr方法

我有如下数值序列:

values <- seq(1,3)

希望生成如下结构的tibble:

# A tibble: 6 x 2
  facet values
  <dbl>  <dbl>
1     1      1
2     2      1
3     2      2
4     3      1
5     3      2
6     3      3

其中facet列表示递归追加的迭代次数。我当前的解决方案是:

facet1 <- values %>% head(1) %>% tibble(facet = 1, values = .)
facet2 <- values %>% head(2) %>% tibble(facet = 2, values = .)
facet3 <- values %>% head(3) %>% tibble(facet = 3, values = .)
bind_rows(facet1, facet2, facet3)

需要更通用的解决方案

当前方案无法适配我的实际场景,因为它依赖于facet序列与values序列一致的特性。以下是更通用的可复现示例,其中values与facet差异较大:

set.seed(42)
values <-  rnorm(3,0,.2)
df_recursive <- tribble(~facet, ~values,
        1, 0.27,
        2, 0.27,
        2, -0.11,
        3, 0.27,
        3, -0.11,
        3, 0.07)

对应的输出结构为:

# A tibble: 6 x 2
  facet values
  <dbl>  <dbl>
1     1   0.27
2     2   0.27
3     2  -0.11
4     3   0.27
5     3  -0.11
6     3   0.07

现寻求一种通用的基于dplyr的方法来生成此类递归结构的DataFrame。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 15:35:21