Rは変数の値を知っているが、関数内で間違ってそれを適用している以外は何が起きているのかを実際には分かりません。Rインタプリタに障害がありますか?
> n2
[1] 4
> rnorm(n2)
[1] 0.379217 -1.519947 1.602527
> rnorm(4)
[1] -0.93154715 -0.82908620 0.55084001 0.09018763
Rはn2 = 4
を知って、それがrnorm(4)
に対処するために、何とかrnorm(n2)
がrnorm(3)
として読まれている方法を知っている:これは私の端末から直接コピーされます。
以下は私のフルコードです。私は、問題が発生したループを止めるための警告として警告を解釈するようにRを設定します。これを実行した後にn2
の値を確認し、次にrnorm(n2)
が何を参照しているかを確認してください。
rm(list = ls())
options(warn = 2)
iterations = 1
n = 10
proportions = seq(.3, .7, by = .1)
#stores
y = c()
position = 1
#set var ratio
parameter = 1.25
#loop over proportions
for(p in proportions){
n1 = p*n
n2 = n-n1
for(i in 1:iterations){
#new ys
newy1 = sqrt(parameter)*rnorm(n1)
newy0 = rnorm(n2)
newy = c(newy1, newy0)
y[position:(position+n-1)] = newy
position = position+n
}
}
私はWindows 7 64ビットでR 3.2.3を実行しています。
ご迷惑をおかけして申し訳ございません。長時間のユーザー、初めてのポスター。このページに来る他に明確にするために
おかげ
SO(およびR)へようこそ!ここで質問するときは、[最小限の質問](http://stackoverflow.com/help/mcve)と[再現可能な例](http://stackoverflow.com/questions/5963269/how-to)を提供することを強くお勧めします。 -make-a-great-r-reproducible-example)である。特に、このような場合には不明確な場合、*期待される出力はどれくらいでしょうか?これは正しく動作しており、少なくとも私にとって直感的に動作しています。 – r2evans
'n2 == 3 'なら' rnorm(3) 'ではなく' rnorm(n2) 'となるでしょうか? – kdopen
申し訳ありませんが、コードを見れば、n2は実際には4です。私は誤ってn2 = 3と言っていました。私はそれを修正した。 – user6106913