【发布时间】:2017-03-16 05:28:28
【问题描述】:
我如何从tmp_v 生成tmp_l,如下所示:
tmp_v <- c(a = 1, a = 2, a = 3, b = 2, c = 0, c = 4, a = 4)
tmp_l <- list(a = c(1, 2, 3, 4), b = 2, c = c(0, 4))
as.list 实现了一半的转换,除了每个向量元素是一个单独的列表元素。我希望将所有具有相同名称的元素合并为一个列表元素:
> as.list(tmp_v)
$a
[1] 1
$a
[1] 2
$a
[1] 3
$b
[1] 2
$c
[1] 0
$c
[1] 4
$a
[1] 4
有趣的是unlist(tmp_l) 几乎提供了反作用:
> unlist(tmp_l)
a1 a2 a3 a4 b c1 c2
1 2 3 4 2 0 4
上下文:像 optim 这样的优化例程需要将参数列表组合成一个参数向量。包执行此转换并将列表中的参数名称添加到参数向量中。找到最优参数向量后,有时需要将其转换回原始列表结构。
【问题讨论】:
标签: r list vector data-structures