如何选择符合特定条件的行后面的所有行?

时间:2017-05-24 13:54:42

标签: r

R是否有可能在符合指定条件的行之后提取NEXT行(选择行+ 1)?例如,我在数据

中选择特定行
df1[df1$criterion == "example", ]

但我对这些行并不感兴趣,但是每个第一行都跟随其中一行满足标准...

3 个答案:

答案 0 :(得分:1)

你可以这样做:

indices <- which(df1$criterion == "example")[- nrow(df1)] + 1
df1[indices, ]

基本上,您使用哪个将TRUE / FALSE掩码转换为索引。部分[- nrow(df)]通过删除掩码(无论其值如何)来处理掩码的最后一个元素为TRUE的情况。

答案 1 :(得分:0)

df[c(F,df$criterion == "example")]

这只是通过在开头附加一个FALSE来抵消屏蔽标志。

答案 2 :(得分:0)

另一个基本解决方案:

df1$cummeet <- cumsum(df1$criterion == "example")
df1[df1$cummeet > 0]

通过使用累积总和,您可以查看该特定行之后的所有行。