1

選択したい行の周りにコンテキスト(隣接するn行)を含める簡単な方法を見つけることができませんでした。
grepの-Cオプションをミラーリングして、data.frameのいくつかの行を選択しようとしています。

元:

a= data.frame(seq(1:100))  
b = c(50, 60, 61)

bでインデックス付けされた行の周りに2行のコンテキストが必要だとします。目的の出力は、行が48、49、50、51、52、58、59、60、61、62、63のaのデータフレームサブセットである必要があります。

4

1 に答える 1

4

このようなことを行うことができますが、インデックスを計算するためのより洗練された方法があるかもしれません:

a= data.frame(seq(1:100))  
b = c(50, 60, 61)
context <- 2
indices <- as.vector(sapply(b, function(v) {return ((v-context):(v+context))}))
a[indices,]

これは:

 [1] 48 49 50 51 52 58 59 60 61 62 59 60 61 62 63

編集: @flodelが指摘しているように、インデックスが重複する可能性がある場合は、次の行を追加する必要があります:

indices <- sort(unique(indices))
于 2013-02-07T18:27:20.610 に答える