library(xml2)
library(rvest)
datpackage <- paste0("dat",1:10)
for(i in 1:10){
assign(datpackage[i], runif(2))
}
datlist <- list(dat1, dat2, dat3, dat4, dat5, dat6, dat7, dat8, dat9, dat10)
datlist2 <- for (i in 1:10) {
list(paste0("dat",i))
}
datlist3 <- list(datpackage)
我已经尝试过datlist2和datlist3,但这与“datlist”不一样。
当我列出包含数千个数据的列表时,我该怎么办?
答案 0 :(得分:3)
如果已创建对象,我们可以将paste
与mget
一起使用
datlist <- mget(paste0("dat", 1:10))
但是,如果我们需要创建一个随机统一数字列表,
datlist <- replicate(10, runif(2), simplify = FALSE)
答案 1 :(得分:2)
为了创建包含随机数的列表,我还建议:
datlist2 <- lapply(vector("list", 10), function(x) {runif(2)})
值得补充的是,lapply
/ vector
方法似乎更快:
funA <- function(x) {replicate(10, runif(2), simplify = FALSE)}
funB <- function(x) {lapply(vector("list", 10), function(x) {runif(2)})}
microbenchmark::microbenchmark(funA(), funB(), times = 1e4)
Unit: microseconds
expr min lq mean median uq max neval cld
funA() 24.053 27.3305 37.98530 28.6665 34.4045 2478.510 10000 b
funB() 19.507 21.6400 30.37437 22.9235 27.0500 2547.145 10000 a