gpt4 book ai didi

R 使用变量名从变量列表

转载 作者:行者123 更新时间:2023-12-03 22:17:00 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Can lists be created that name themselves based on input object names?

(5 个回答)


3年前关闭。




我已经为这个非常简单的任务广泛寻找解决方案,虽然我有一个解决方案,但似乎必须有更好的方法。任务是从一组变量创建一个列表,使用变量名称作为列表中每个元素的名称,例如:

a <- 2
b <- 'foo'
c <- 1:4

我目前的解决方案:
named.list <- function(...) { 
l <- list(...)
names(l) <- sapply(substitute(list(...)), deparse)[-1]
l
}
named.list(a,b,c)

产生:
$a
[1] 2

$b
[1] "foo"

$c
[1] 1 2 3 4

最佳答案

我能想到的几种方法包括 mget (假设您的对象所在的环境):

mget( c("a","b","c") )
$a
[1] 2

$b
[1] "foo"

$c
[1] 1 2 3 4

或者作为对您的函数的编辑,您可以使用, match.call像这样:
named.list <- function(...) { 
l <- list(...)
names(l) <- as.character( match.call()[-1] )
l
}
named.list( a,b,c)
$a
[1] 2

$b
[1] "foo"

$c
[1] 1 2 3 4

或者您可以使用 setNames 一次性完成像这样:
named.list <- function(...) { 
l <- setNames( list(...) , as.character( match.call()[-1]) )
l
}

named.list( a,b,c)
$a
[1] 2

$b
[1] "foo"

$c
[1] 1 2 3 4

关于R 使用变量名从变量列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831015/

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