R 用列表填充列表(复制、重叠)
如何生成已知大小的列表列表 目前我是这样做的R 用列表填充列表(复制、重叠),r,R,如何生成已知大小的列表列表 目前我是这样做的 create_scout_bees <- function(search_space, num_scouts){ gen_bee <- function(unused, sear_spac){ create_random_bee(sear_spac) } bees <- lapply(1:num_scouts, gen_bee, search_space) #bees <- replicate(num_
create_scout_bees <- function(search_space, num_scouts){
gen_bee <- function(unused, sear_spac){
create_random_bee(sear_spac)
}
bees <- lapply(1:num_scouts, gen_bee, search_space)
#bees <- replicate(num_scouts, create_random_bee(search_space))
cat('\nclass of bees is:',class(bees),'\n')
bees
}
复制版本返回一个列表
$vector
[1] 3.780779 3.588892
$vector
[1] -4.290371 4.098709
$vector
[1] 1.051525 -3.374406
$vector
[1] -0.4593861 -4.8412850
$vector
[1] 2.164383 -4.903347
我可以为两个返回值编制索引。但第二个选项似乎只是一个列表,其中包含5个具有相同键的vector类型的元素。当通过键访问时,它返回第一个元素。
如何生成已知大小的列表?您可以试试
replicate(5, list(vector=rnorm(2)), simplify=FALSE)
# [[1]]
#[[1]]$vector
#[1] -1.5239454 -0.1326934
#[[2]]
#[[2]]$vector
#[1] -1.4369404 0.3701259
#[[3]]
#[[3]]$vector
#[1] 0.3251298 -1.4289498
#[[4]]
#[[4]]$vector
#[1] 0.8346002 -0.2974959
#[[5]]
#[[5]]$vector
#[1] 0.4581858 -0.8066517
谢谢@akrun。如果你加上这个作为答案,那么我接受它。另外,我会在一段时间后删除这个问题。好的,我会补充这个作为答案
replicate(5, list(vector=rnorm(2)), simplify=FALSE)
# [[1]]
#[[1]]$vector
#[1] -1.5239454 -0.1326934
#[[2]]
#[[2]]$vector
#[1] -1.4369404 0.3701259
#[[3]]
#[[3]]$vector
#[1] 0.3251298 -1.4289498
#[[4]]
#[[4]]$vector
#[1] 0.8346002 -0.2974959
#[[5]]
#[[5]]$vector
#[1] 0.4581858 -0.8066517