2016-08-31 4 views
0

私のサンプルデータは、私はその後、私はR反復サンプル平均をデータフレームに保存する方法は?

sampledata <- read.csv(file.choose(),header = TRUE) 
内のファイルを読み込んだ情報

df <- data.frame(Sample.Num = integer(), 
       Sample.Mean = integer(), 
       stringsAsFactors = FALSE) 
df[1,] <- NA 

を保存するために、最初の空白データフレームを作成しています。この

age id kilometers 
32 1 1 
30 2 8 
23 3 2 
31 4 6 

のように見えた270回の観測を持っています

次に、私は上記の270行からランダムに2つの観測値を選択し、サンプル数とサンプル平均をキロメートルとして格納するforループを実行しようとしていますers。私は平均の標本分布を確認したいポスト」

for (i in 1:100){ 
    mysample <- sampledata[sample(1:nrow(sampledata),size = 2,replace = TRUE),] 
    meansample <- mean(mysample$kilometers,na.rm = TRUE) 
    df$Sample.Num <- i 
    df$Sample.Mean <- meansample 
} 

しかし、私は100回目つまり(私はサンプル数の変更、これを実行しますが、データフレームDFが最後の反復を格納するたびR.に非常に新しいです繰り返し)。私は残りの99を保存することができません 助けていただければ幸いです。

+1

をあなたがしたい 'DF [I、 "Sample.Num"] < - i'と 'df [i、" Sample.Mean "] < - 意味例BTW:' meanample'は値 '16.5'(整数ではない)を持つことができます。 – jogo

+0

また、100行の 'df'を作成する必要があります。 'df < - data.frame(Sample.Num = rep(NA、100)、Sample.Mean = rep(NA、100))' – Axeman

+0

ありがとうございました。ありがとう、Axeman –

答えて

0

あなたが行うことができます。

df <- data.frame(
    Sample.Num=1:100, 
    Sample.Mean=replicate(100, mean(sampledata$kilometers[sample.int(nrow(sampledata), size=2, replace=TRUE)], na.rm=TRUE)) 
) 

または短い:

df <- data.frame(
    Sample.Num=1:100, 
    Sample.Mean=replicate(100, mean(sample(sampledata$kilometers, size=2, replace=TRUE), na.rm=TRUE)) 
) 

をあなたは、あなたが行うことができますsampledata$kilometersにはNAがない場合:

df <- data.frame(
    Sample.Num=1:100, 
    Sample.Mean=replicate(100, mean(sample(sampledata$kilometers, 2, rep=TRUE))) 
) 
+0

ジョゴ、 2番目の解決策も同様に機能し、より簡単に見えます。ループを避けたい人のために:-( –

関連する問題