如何将列表名称分配为字符串?

时间:2012-03-14 14:17:30

标签: r

我做:

assign('test', 'bye')
test
[1] "bye"

现在,我在'test '变量中有了向量。

我想将'test'变量中的字符串用作以下列的列的名称:

list(test=c(1:10))
$test
[1]  1  2  3  4  5  6  7  8  9 10

但我想使用'bye'作为NAME(因为'bye'是在测试变量中写的) 我该怎么办?

2 个答案:

答案 0 :(得分:8)

我认为这里不需要evalassign;他们的使用通常(虽然并非总是如此)表明你正在以艰难的方式做事,或者至少采用非R-ish的方式。

> test <- "bye"
> L <- list(1:10)  ## c() unnecessary here too
> names(L) <- test
> L
$bye
 [1]  1  2  3  4  5  6  7  8  9 10

如果你真的想在一个声明中这样做,你可以这样做:

L <- setNames(list(1:10), test)

L <- structure(list(1:10), .Names=test)

答案 1 :(得分:1)

我想这会是你正在寻找的答案吗?

assign('test','bye')
z<-list(c(1:10))
names(z)<-test