pasteで作成した言語オブジェクトに値を代入

paste関数を使用して作成した文字列に,値を代入する方法です.

ふつうに代入しようとしてもエラーになりますが,

> paste("who", "are", "you", sep = "") <- 31
 以下にエラー paste("who", "are", "you", sep = "") <- 31 : 
   付値対象は非言語オブジェクトに展開されます 
> 

assign関数を使えば代入できるようになります.

> assign(paste("who", "are", "you", sep = ""), 31)
> whoareyou
[1] 31
> 


連続的に代入したい場合には,

> myname <- c("apple", "orange", "grape")
> myvalue <- c(32, 33, 34)
> for( i in 1:3){
+ 	assign(paste("I", "am", myname[i], sep = ""), myvalue[i])
+ }
>
> Iamapple
[1] 32
> Iamorange
[1] 33
> Iamgrape
[1] 34
> 

こんな感じに.