我想从匹配条件的第一行到最后一行删除数据框中的所有行。
这是我在基本 R 中得到的,找到disp
400所在的行,然后将该行和所有行从该行拖到最后一行:
mtcars[-c(which(mtcars$disp == 400):nrow(mtcars)), ]
如何使用 dplyr 和/或 data.table 执行此操作?
在dplyr
,你可以cumsum
在里面使用filter
。一旦达到第一个 400,cumsum 就会增加到 1。
mtcars%>%
filter(cumsum(disp==400)<1)
这是等效的data.table
:
mtcars <- as.data.table(mtcars)
mtcars[cumsum(disp==400)<1]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句