假设我们有一个原始列表对象list_tmp,它具有不同级别的嵌套,如下所示(在文章的底部是list_tmp的代码):

> list_tmp
$clinic
$clinic$trial
$clinic$trial$patient
     A B
[1,] 0 0
[2,] 0 0


$clinic$result
     C
[1,] 0
[2,] 0


$test
     D
[1,] 0
[2,] 0

如何在不考虑子列表名或嵌套级别的情况下,将向量值以行-列的方向"注入"List对象?填充将一直持续到耗尽向量元素的较早者,或者直到到达列表的末尾.在完整的代码中,向量元素的数量将始终等于列表中的"单元格"的数量.

例如,如果我们有向量vec <- (1,2,3,4,5,6,7,8),按顺序将这些向量值倾倒到list_tmp中将产生以下结果:

> list_tmp
$clinic
$clinic$trial
$clinic$trial$patient
     A B
[1,] 1 3
[2,] 2 4


$clinic$result
     C
[1,] 5
[2,] 6


$test
     D
[1,] 7
[2,] 8

代码list_tmp:

list_tmp <- list(
  clinic = list(
    trial = list(
      patient = matrix(0, nrow = 2, ncol = 2, dimnames = list(NULL, c("A", "B")))
    ),
    result = matrix(0, nrow = 2, ncol = 1, dimnames = list(NULL, c("C")))
  ),
  test = matrix(0, nrow = 2, ncol = 1, dimnames = list(NULL, c("D")))
)

推荐答案

轻松完成relisting个:

a <- unlist(as.relistable(list_tmp))
a[seq_along(vec)] <- vec
unclass(relist(a))

$clinic
$clinic$trial
$clinic$trial$patient
     A B
[1,] 1 3
[2,] 2 4


$clinic$result
     C
[1,] 5
[2,] 6


$test
     D
[1,] 7
[2,] 8
   

vec <- c(1,2,3,4,5,6,7,8)

R相关问答推荐

在R中使用GG Plot时如何 suppress 等值线图中的彩色条

多个ggpredicate对象的平均值

创建重复删除的唯一数据集组合列表

具有多个依赖变量/LHS的逻辑模型

如何计算R数据集中每个女性的子元素数量?

在不安装软件包的情况下测试更新

错误:非常长的R行中出现意外符号

S用事件解决物质平衡问题

用关联字符串替换列名的元素

如何得到每四个元素向量R?

从所有项的 struct 相同的两级列表中,将该第二级中的所有同名项绑定在一起

通过在colname中查找其相应值来创建列

您是否可以使用facet_rap设置一个较低的限制来对ggmap上的比例中断进行zoom ?

从R中的对数正态分布生成随机数的正确方法

在R中,我如何使用滑动窗口计算位置,然后进行过滤?

删除数据帧中特定行号之间的每第三行和第四行

如何删除设置大小的曲线图并添加条形图顶部数字的百分比

使用ggplot2绘制具有边缘分布的坡度图

我正在try 创建一个接近cos(X)的值的While循环,以便它在-或+1-E10范围内

使用dqur在不同变量上创建具有多个条件的变量