質問: いまRを勉強しています。 x1~x50に10を代入したいような場合には下記でできることがわかりました。 ``` for(i in 1:50){ assign(paste("x",i,sep=""),10) } ``` これに対して、 x1~x50にy1~y50を代入するような場合、 ``` for(i in 1:50){ assign(paste("x",i,sep=""),paste("y",i,sep="")) } ``` のようにするとy1~y50を文字列と認識してしまうようで代入ができません。 どうすれば希望の操作ができるでしょうか? どなたかご教授いただけると幸いです。 よろしくお願いいたします。
回答: あなたの質問の解答はありますが,お答えしません。 というのは,お答えしても無駄(それを使うような局面はない,少なくとも今回のような場合は)だからです。 たとえば,x1 〜 x50 に値を代入したとして,それをどのように使うつもりでしょうか? x1 〜 x50 の和を求めるときに,x1+x2+x3+ ... +x50 って書くつもりですか? このような場合には,ベクトルを使います。 x = numerric(50) # 長さ(要素数)50のベクトル x x = c(1, 2, 5, 9, 10, ..., 7) # ベクトルへの代入(やり方はいろいろ) x = y 同じ要素数を持つ y を x に代入 sum(x) 和を求める mean(x) 平均値を求める var(x) 分散を求める などなど どうしてもやりたいなら, eval 関数を調べれば答えがわかるでしょう。