1

次の計算を行う必要があります。

a1= 100+1 a2 = 100+2 ... a10 = 100+10

私は次のようにこれをループしようとします:

z = 1
while(z<11) {
    z = z+1
    a = 100+z
}

Rに結果をa1、a2、... a10として保存させるにはどうすればよいですか? 「貼り付け」とおそらく「割り当て」を使用する必要があることはわかっていますが、わかりません。ご助力ありがとうございます!

編集: 迅速かつ有益な返信をいただき、誠にありがとうございます。私は今、それを機能させる方法も見つけました(ただし、あなたのものほど良くはありません):

z = 0
while(z<10) {
    z = z+1
    x = 100+z
    assign(paste("a",z, sep=""),x)
}

改めまして、どうもありがとうございました!

乾杯、クリス

4

2 に答える 2

2

で取得できるため、そのベクトルを取得するために while ループは必要ありません100 + 1:10。を使用して値を割り当てる方法は次のmapplyとおりです。

mapply(assign,value=100+1:10,x=paste0("a",1:10),MoreArgs=list(envir=.GlobalEnv))
于 2012-09-07T18:51:35.583 に答える
1

使用する必要はありませんwhile-パッケージsetNamesから使用します:stats

> (function(x)setNames(x,paste(sep="","a",x)))(1:11)
 a1  a2  a3  a4  a5  a6  a7  a8  a9 a10 a11 
  1   2   3   4   5   6   7   8   9  10  11 
于 2012-09-07T18:46:43.087 に答える