指定された条件を満たす行の後にRがNEXT行(選択行+ 1)を抽出する可能性はありますか?例えば、私は私のデータ内の特定の行特定の条件を満たす行の直後に来るすべての行を選択するにはどうすればよいですか?
df1[df1$criterion == "example", ]
を選択するが、私はこれらの行に興味を持っていないですが、基準をfullfilものの一つに、以下のすべての最初の行...
指定された条件を満たす行の後にRがNEXT行(選択行+ 1)を抽出する可能性はありますか?例えば、私は私のデータ内の特定の行特定の条件を満たす行の直後に来るすべての行を選択するにはどうすればよいですか?
df1[df1$criterion == "example", ]
を選択するが、私はこれらの行に興味を持っていないですが、基準をfullfilものの一つに、以下のすべての最初の行...
あなたはそれを行うことができます。
indices <- which(df1$criterion == "example")[- nrow(df1)] + 1
df1[indices, ]
基本的には、TRUE
/FALSE
マスクをインデックスに変換するために使用します。部分[- nrow(df)]
は、マスクの最後の要素が削除された場合(その値に関係なく)TRUE
の場合に対応します。
もう一つの基本的な解決策は:
df1$cummeet <- cumsum(df1$criterion == "example")
df1[df1$cummeet > 0]
累積和を使用することで、その特定の行の後にすべての行を見ることができます。
おそらく 'df1 [(df1 $ criterion ==" example ")+ 1、'? –
'?which'を見てください – Sotos
非常に参考になりました –