私は以下の質問に興味があります:N(0,1)からそれぞれ100個のランダムサンプルを生成します。各サンプルにおいて、絶対平均を見つける。 (1/100)* sum(abs(x))を計算します。ここで私はそれについて行く方法です:R:ノーマル絶対値から無作為にサンプリングする
set.seed(124)
N <- 100
samples <- rnorm(n=N, mean=0, sd=1)
A <- function(x,N){
(1/N)*sum(abs(x))
}
result <- sapply(samples, A, N)
print(result)
print(mean(result))
print(var(result))
しかし、これは、単一のサイズ100ランダムサンプルを取っているようだ。コードを修正するにはどうすればよいですか?そして平均と分散のプロットをresult
として生成するには、どうすればよいでしょうか?N
は変わりますか? for
ループを使用する必要がありますか、これをRで行うより良い方法がありますか?
ありがとうございました!
あなたは 'rnorm'を正確に1回呼び出しました。つまり、100個の乱数のサンプルが1つだけです。 –
ありがとうございます。二人の「サプリー」をやったら? 'N < - 100' 'NSamp < - C(1:N)' ' takesample < - 関数(N){ X < - rnorm(N = N、平均= 0、SD = 1) } '' サンプル< - sapply(NSamp、takesample(N)) ' ' < - 関数(X、N){ (1/N)*和(ABS(X)) } ''結果< - sapply(samples、A、N) ' – aridneptune
以下にいくつかの作業コードを追加しました。乾杯! –