74

forループがあります:

for (i in 1:10){ Ai=d+rnorm(3)}

私がやりたいのは、変数名A1, A2,A3...A10に変数を持っていることですi

このようには機能しませんが、おそらくいくつかの小さなものが欠けています。ifor ループで を使用して、別の変数名を割り当てるにはどうすればよいですか?

4

3 に答える 3

111
d <- 5
for(i in 1:10) { 
 nam <- paste("A", i, sep = "")
 assign(nam, rnorm(3)+d)
}

詳細はこちらまたはこちら!

于 2013-05-15T13:46:42.263 に答える
17

を使用することもできますassignが、assign(またはget) を使用することは、多くの場合、あまり R に似ていないプログラミング構造の兆候です。通常、リストまたはマトリックスを使用すると、よりクリーンなソリューションが可能になります。

  • リスト付き:

    A <- lapply (1 : 10, function (x) d + rnorm (3))
    
  • 行列で:

    A <- matrix (rep (d, each = 10) + rnorm (30), nrow = 10)
    
于 2013-05-15T13:46:28.183 に答える
4

別のオプションは、次のように eval と parse を使用することです。

d = 5
for (i in 1:10){
     eval(parse(text = paste('a', 1:10, ' = d + rnorm(3)', sep='')[i]))
}
于 2020-07-06T22:00:03.340 に答える