2012-05-16 14 views
12

をリストに追加します。私は仕事しないこれをやってみましたpaste("another","name",sep="_")は、私はR内のリストを持っているダイナミックな名前、R

を::それは、彼らが(たとえば、文字列から作成されている、ある?

c(a, parse(text="paste(\"another\",\"name\",sep=\"_\")=\"hola\"") 

これを行うための正しい方法は何最終目標は、単に追加することですこのリストに、動的に私の名前を選択します。

答えて

19

をあなただけの二重括弧でインデックスを使用することができます。次のいずれかの方法で動作するはずです。

a <- list(n1 = "hi", n2 = "hello") 
val <- "another name" 
a[[val]] <- "hola" 
a 
#$n1 
#[1] "hi" 
# 
#$n2 
#[1] "hello" 
# 
#$`another name` 
#[1] "hola" 

a[[paste("blah", "ok", sep = "_")]] <- "hey" 
a 
#$n1 
#[1] "hi" 
# 
#$n2 
#[1] "hello" 
# 
#$`another name` 
#[1] "hola" 
# 
#$blah_ok 
#[1] "hey" 
+0

は、あなたに感謝非常に短く、ありがとう – Alex

9

あなたはその場で名前を設定するためにsetNamesを使用することができます。

a <- list(n1 = "hi", n2 = "hello") 
c(a,setNames(list("hola"),paste("another","name",sep="_"))) 

結果:

$n1 
[1] "hi" 

$n2 
[1] "hello" 

$another_name 
[1] "hola" 
+0

ポイント溶液に、これは素晴らしいです。 setNamesについて知っておきたいこと。 – Alex