从两个向量(名称、值)创建命名列表

2024-03-09

有没有办法在两个向量上使用 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`

这似乎是一个相当人为的解决方案,但我不知道如何做到这一点。我遇到的问题是:

  1. 它需要创建dummyList虽然dummyList永远不会改变,并且在调用后是一个空列表mapply.

  2. 如果数值向量,c(1, 2),不转换为列表,则调用的结果mapply是双精度数的命名向量。

为了解决问题 2,我总是可以直接打电话mapply在两个向量上,然后调用as.list关于结果,但似乎应该有一种方法可以直接创建一个列表,其中的值位于向量中。


您可以使用setNames()

setNames(as.list(c(1, 2)), c("foo", "bar"))

(用于列表)或

setNames(c(1, 2), c("foo", "bar"))

(对于向量)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从两个向量(名称、值)创建命名列表 的相关文章

随机推荐