2017-07-08 76 views
3

我在R中有一個列表,我試圖從字符數組中重命名列表成員。例如:如何在R中矢量化函數的參數?

mylist <- list(c('a','b','c'),c('d','e'),'f') 
headers <- c('heading1','heading2','heading3') 

而且我可以重命名列表中的成員如下:

names(mylist) <- c(headers[1], 
        headers[2], 
        headers[3]) 

但是,當我的名單很長的成員100S,這個代碼是可怕的編寫。我試過使用for循環以及矢量化符號,但沒有任何工作。道歉無疑是一個重複的問題,但我試圖谷歌搜索了很多虛假的線索

+5

'名稱(MYLIST)< - headers' –

回答

2

您可以使用粘貼功能在for循環中順序創建編號標題。然後使用上面的答案將標題分配給列表的名稱。

mylist <- list(c('a','b','c'),c('d','e'),'f') 
headers <- rep(NA, length(mylist)) 
for (i in 1:length(mylist)){ 
    headers[i] <- paste("heading", i, sep = "") 
} 
names(mylist) <- headers 
0

隨着sprintf -function它是那麼容易,因爲:

names(mylist) <- sprintf("%s%s", "heading", 1:length(mylist)) 

其結果是:

> mylist 
$heading1 
[1] "a" "b" "c" 

$heading2 
[1] "d" "e" 

$heading3 
[1] "f"