2017-07-08 8 views
3

私はRにリストを持っており、リストメンバーを文字配列からリネームしようとしています。例えば:Rの関数のargsをベクトル化する方法は?

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

そして、私はこのようなリストのメンバーの名前を変更することができます

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

しかし、私のリストは長いメンバーの何百あるときに、このコードを書くのは恐ろしいです。私はfor-loopとベクトル化された表記を使ってみましたが、何も動作しません。疑問の重複は疑問ですが、私はそれをGoogleにしようとしている間違ったリードをたくさん探しました

+5

'名(マイリスト)< - headers' –

答えて

2

貼り付け機能を使用して、forループで番号付きヘッダーを順番に作成できます。次に、上記の答えを使用して、ヘッダーをリストの名前に割り当てます。 sprintf -functionで

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

それは同じように簡単です:

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

結果:

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

$heading2 
[1] "d" "e" 

$heading3 
[1] "f" 
関連する問題