【发布时间】:2013-07-24 19:04:03
【问题描述】:
有没有办法在两个向量上使用 mapply 来构造一个命名列表?第一个向量的类型为character,包含用于列表的名称,而第二个向量包含值。
到目前为止,我唯一的解决方案是:
> dummyList = list()
> addToList <- function(name, value) {
+ dummyList[[name]] <- value
+ }
> mapply(addToList, c("foo", "bar"), as.list(c(1, 2))
$foo
`1`
$bar
`2`
这似乎是一个相当人为的解决方案,但我不知道该怎么做。我遇到的问题是:
它需要创建
dummyList,即使dummyList从未更改并且在调用mapply后是一个空列表。如果数值向量
c(1, 2)未转换为列表,则调用mapply的结果是双精度的命名向量。
为了解决问题 2,我总是可以在两个向量上调用 mapply,然后在结果上调用 as.list,但似乎应该有一种方法可以直接创建一个列表,其中的值位于向量。
【问题讨论】:
-
相关:直接在代码中创建一个 tibble(而不是命名列表),并排属性名称和值,因为 2020 年的任何语言都应该能够:stackoverflow.com/questions/58427326 .. . 正确的地图代码内定义:应该不难。
标签: r list constructor lapply named