gpt4 book ai didi

重复 data.frame 的行 N 次

转载 作者:行者123 更新时间:2023-12-03 05:31:39 25 4
gpt4 key购买 nike

我有以下数据框:

data.frame(a = c(1,2,3),b = c(1,2,3))
a b
1 1 1
2 2 2
3 3 3

我想重复这些行n次。例如,这里的行重复 3 次:

  a b
1 1 1
2 2 2
3 3 3
4 1 1
5 2 2
6 3 3
7 1 1
8 2 2
9 3 3

R 中有一个简单的函数可以做到这一点吗?谢谢!

最佳答案

编辑:更新为更好的现代 R 答案。

您可以使用replicate(),然后rbind将结果重新组合在一起。行名会自动更改为从 1:nrows 开始运行。

d <- data.frame(a = c(1,2,3),b = c(1,2,3))
n <- 3
do.call("rbind", replicate(n, d, simplify = FALSE))

更传统的方法是使用索引,但这里的行名更改不是那么简洁(但信息更丰富):

 d[rep(seq_len(nrow(d)), n), ]

以下是对上述内容的改进,前两个使用 purrr 函数式编程,惯用的 purrr:

purrr::map_dfr(seq_len(3), ~d)

以及不太惯用的 purrr(结果相同,但更尴尬):

purrr::map_dfr(seq_len(3), function(x) d)

最后通过索引而不是使用 dplyr 进行列表应用:

d %>% slice(rep(row_number(), 3))

关于重复 data.frame 的行 N 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com