复制一个过程:生成 m 个数据帧,每个数据帧都有一个包含随机值的变量,并将它们附加到 R 中

问题描述 投票:0回答:1

生成 m 个数据帧(其中每个数据帧都有一个包含随机值的变量)并附加它们的最有效方法是什么?

这是一个例子:

df <- data.frame(id = 1:10, var = sample(1:500), 10, replace=TRUE)


id var

1  65
2  123
3  42
4  16
5  463
6  129
7  367
8  99
9  489
10 63

如果 m = 2,则应生成并附加两个数据帧,具有:

id var
    
 1  65
 2  123
 3  42
 4  16
 5  463
 6  129
 7  367
 8  99
 9  489
 10 63
 1  321
 2  410
 3  78
 4  166
 5  320
 6  478
 7  231
 8  100
 9  105
 10 206
r append sampling replicate
1个回答
0
投票

将要生成的数据框放入函数中

fun <- function() {
  df <- data.frame(id = 1:10, var = sample(1:500, 10, replace=TRUE))  
  df
}

然后有多种方法可以调用这个函数

m
次并绑定。

使用

replicate

基础 R
m <- 2
do.call(rbind, replicate(m, fun(), simplify = FALSE))

使用

lapply

基础 R
do.call(rbind, lapply(seq_len(m),\(x) fun()))

purrr::map_df

purrr::map_df(seq_len(m), ~fun())
© www.soinside.com 2019 - 2024. All rights reserved.