gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:30:40 25 4
gpt4 key购买 nike

有没有办法在两个向量上使用mapply来构造命名列表?第一个向量的类型为字符,包含用于列表的名称,而第二个向量包含值。

到目前为止,我唯一的解决方案是:

> 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) 未转换为列表,则调用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com