2016-07-19 10 views
0

私のデータセットは、N IDの合計から(data_xyそれを呼び出す)Rコーディング:反復測定とデータセットのブートストラップ

id X Y 
1 5 10 
1 6 11 
1 4 8 
2 3 9 
2 3 12 
3 4 10 
... 

観測のように見えます。各IDには複数の測​​定行があります。

置き換えてIDをブートストラップします。ブートストラップIDに重複が含まれている可能性は非常に高いです。

b_idx <- sample.int(N,N,T) 

それはb_idxとブートストラップサンプルを作成する方法を次に

b_idx=c(1,1,3,4,4,4....) 

ている可能性がありますか?私は(その繰り返し測定して)各id

data_xy[data_xy$id==b_idx,] 

をすれば、私のブートストラップデータセットのものだけを発生します。私が本当に望んでいるのは、id=kの観測値をこのIDがb_idxにある回数繰り返すことです。どうすればこれを達成できますか?

答えて

0

私はこのためにgrrパッケージの 'matches'関数を使用します。

Indices <- unlist(matches(b.idx, data_xy$ID, list=TRUE)) 

b.data <- data_xy[Indices, ] 
0

実際にIDを直接使用する必要はありません。あなたは二度同じ整数を渡す場合、あなたはその倍の行を取得

# How many rows in the data.frame? 
n <- nrow(mtcars) 

# Sample them 
mtcars[sample(x = n, size = n, replace = TRUE), ] 

:あなただけのサンプル行番号ができ、それらと、直接インデックスdata.frame。あなたはすでにそれを知っていない場合は

mtcars[c(1, 1), ] 

すると、あなたのためのブートストラップのシナリオの多くを自動化するthe boot packageを、チェックしてください:ここでのアクションでその原則の例を示します。