[英]How to create a list with variable number of lists in R
我正在嘗試創建一個這樣的列表“池”:
> n=10
> pool=list(0:n,0:n,0:n)
> pool
[[1]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[3]]
[1] 0 1 2 3 4 5 6 7 8 9 10
而不是鍵入 0:n 三次,我需要使用一行代碼來表示它,因為重復次數會隨着時間而變化。 我試過:
> K=3
> pool=NULL
> for (i in 1:K){
+ pool=list(pool,0:n)
+ }
> pool
[[1]]
[[1]][[1]]
[[1]][[1]][[1]]
NULL
[[1]][[1]][[2]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[1]][[2]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 0 1 2 3 4 5 6 7 8 9 10
但他們是不同的。 我怎樣才能做到? 謝謝!
使用rep
:
k <- 3
rep(list(0:n), k)
或者您可以使用purrr::map
:
purrr::map(1:k, ~0:n)
Output
[[1]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[2]]
[1] 0 1 2 3 4 5 6 7 8 9 10
[[3]]
[1] 0 1 2 3 4 5 6 7 8 9 10
您可以使用replicate
:
n = 10
K = 3
pool <- replicate(K, 0:n, simplify = FALSE)
pool
#[[1]]
# [1] 0 1 2 3 4 5 6 7 8 9 10
#[[2]]
# [1] 0 1 2 3 4 5 6 7 8 9 10
#[[3]]
# [1] 0 1 2 3 4 5 6 7 8 9 10
replicate
類似於purrr::rerun
pool <- purrr::rerun(K, 0:n)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.