生成 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
将要生成的数据框放入函数中
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())