0
私はベクトル化されたR関数を持っています(下記参照)。実行ごとに、この関数は2つのヒストグラムをプロットします。私の目標は、引数n
がベクトルである場合(以下の使用例を参照)、関数はこれらのヒストグラムの別々のセットのn
の長さをプロットします(例:が長さ2
のベクトルの場合、2つのヒストグラム個々のヒストグラム)?ヒストグラムのセットを生成するベクトル化されたR関数
私は以下を試してみましたが、成功しませんでした。これを行う方法はありますか?
t.sim = Vectorize(function(n, es, n.sim){
d = numeric(n.sim)
p = numeric(n.sim)
for(i in 1:n.sim){
N = sqrt((n^2)/(2*n))
x = rnorm(n, es, 1)
y = rnorm(n, 0, 1)
a = t.test(x, y, var.equal = TRUE)
d[i] = a[[1]]/N
p[i] = a[[3]]
}
par(mfcol = c(2, length(n)))
hist(p) ; hist(d)
}, "n")
# Example of use:
t.sim(n = c(30, 300), es = .1, n.sim = 1e3) # `n` is a vector of `2` so I expect
# 4 histograms in my graphical device
それはベクトルだが何とか関数が二度入力を走る長さnは、各反復で1であるので、あなたが印字長(n)でそれをテストすることができます外に呼び出し、関数であり、1の代わりに2組のプロットが得られます。 – timfaber
'par(mfrow = c(2、2)'を関数の外に置き、それを関数内で削除するより簡単な方法はないと思います。それを変更すると常に1になります – timfaber