有没有办法在两个向量上使用mapply来构造命名列表?第一个向量的类型为字符,包含用于列表的名称,而第二个向量包含值。
到目前为止,我唯一的解决方案是:
> 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)
未转换为列表,则调用maply
的结果是一个命名的 double 向量。
为了解决问题 2,我总是可以对两个向量调用 maply
,然后对结果调用 as.list
,但似乎应该有一个直接创建一个列表的方法,其中的值位于向量中。
最佳答案
您可以使用setNames()
setNames(as.list(c(1, 2)), c("foo", "bar"))
(对于列表)或
setNames(c(1, 2), c("foo", "bar"))
(对于向量)
关于r - 从两个向量(名称、值)创建命名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842705/