【问题标题】:distribute a vector over list of lists in R在R中的列表列表上分配一个向量
【发布时间】:2020-06-10 18:05:59
【问题描述】:

我正在尝试在 R 中填充列表列表。我有一个名称向量和一个对应的值向量,如下所示:

lnames <- c("tic", "tac", "toe")
lvals <- c("one", "two", "three")
foo <- vector(mode="list", length=length(lnames))
names(foo) <- lnames
$tic
NULL

$tac
NULL

$toe
NULL

我能够使用lnames 向量成功命名列表列表。如何在不使用for 循环或手动分配的情况下填充 foo 中的列表? 预期输出:

> foo
$tic
[1] "one"

$tac
[1] "two"

$toe
[1] "three"

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以使用:

    foo[] <- as.list(lvals)
    foo
    #$one
    #[1] "one"
    
    #$two
    #[1] "two"
    
    #$three
    #[1] "three"
    

    或者您也可以同时指定名称和值:

    setNames(as.list(lvals), foo)
    

    【讨论】:

    • 第一个解决方案效果更好。在as.list(lvals) 之后,我执行names(foo) &lt;- lnames 并得到我想要的结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 2013-03-09
    相关资源
    最近更新 更多