r - 如何在R中将向量转换为具有已知嵌套结构的列表?

标签 r list data-manipulation

我想将 x 维向量转换为具有 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) )

最佳答案

您可以使用重新列出

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

关于r - 如何在R中将向量转换为具有已知嵌套结构的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73609555/

相关文章:

python - 计算列表中项目的出现次数 - python 方式

hadoop - Hadoop集群中的数据处理如何完成?

r - 在data.table中拆分字符串并转换为长格式的快速方法

R blogdown : figures generated in . Rmd 文件在 R-bloggers 上显示博客时不显示

r - 如何从 R 中的向量创建单行数据框?

r - 输入以将幂律拟合到网络的度分布

gnuplot - 需要在 gnuplot 中绘制每第 n 行

r - 使用R将时间序列中的事件分组

list - 如何使用Hibernate PersistentBag不遵守List equals契约(Contract)?

Python 使用正则表达式匹配复杂字符串