我想將 ax 維向量轉換為具有 x 元素的嵌套串列。嵌套串列應具有與已知串列相同的嵌套結構。有沒有一種簡單的方法可以做到這一點?
例如,要轉換的向量是
vector <- rnorm(10)
而具有已知結構的串列是
list <- list( list(rnorm(2),rnorm(2)),
list(rnorm(3),rnorm(3)) )
[[1]]
[[1]][[1]]
[1] -1.113833 1.158779
[[1]][[2]]
[1] 0.09773685 -1.62518666
[[2]]
[[2]][[1]]
[1] -1.134478 -1.091703 -0.109145
[[2]][[2]]
[1] -0.5181986 -1.9268952 -0.8527101
另一個類似的情況是我可能知道每個子串列的長度
length_list <- list( list(2,2), list(3,3) )
uj5u.com熱心網友回復:
您可以使用relist
.
x <- 1:10
lst <- list( list(rnorm(2),rnorm(2)),
list(rnorm(3),rnorm(3)) )
relist(x, lst)
#[[1]]
#[[1]][[1]]
#[1] 1 2
#
#[[1]][[2]]
#[1] 3 4
#
#
#[[2]]
#[[2]][[1]]
#[1] 5 6 7
#
#[[2]][[2]]
#[1] 8 9 10
或者對于另一種情況,使用 . 創建一個串列rapply
。
x <- 1:10
length_list <- list( list(2,2), list(3,3) )
relist(x, rapply(length_list, rep, x=0, how="list"))
#[[1]]
#[[1]][[1]]
#[1] 1 2
#
#[[1]][[2]]
#[1] 3 4
#
#
#[[2]]
#[[2]][[1]]
#[1] 5 6 7
#
#[[2]][[2]]
#[1] 8 9 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505427.html