2012-03-14 183 views
2

我做的:如何将列表列的名称分配为字符串?

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

现在,我有内部'测试' 变量的矢量。

我想里面使用“测试”变量中的字符串作为后续列表的列名:

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

但我想用“再见”的名称(因为“再见'写在测试变量里面) 我该怎么做?

回答

8

我不认为evalassign在这里是必要的;他们的使用通常(虽然不总是)表明你正在做一些艰难的事情,或至少是非R的方式。

> 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) 
+0

对于那些还不知道的人来说,本的第一句话是对“财富(106)”的引用。 '幸运(181)'也是相关的。 :) – 2012-03-14 14:46:03

1

我想这会是你要寻找的答案?

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