2012-03-14 179 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 
相關問題