【发布时间】:2017-06-26 23:12:45
【问题描述】:
我想删除数据框中从匹配条件的第一行到最后一行的所有行。
这是我在 base R 中得到的,找到 disp 为 400 的行,并将该行和该行中的所有行删除到最后一行:
mtcars[-c(which(mtcars$disp == 400):nrow(mtcars)), ]
如何使用 dplyr 和/或 data.table 做到这一点?
【问题讨论】:
-
head(mtcars, match(400, mtcars$disp)-1)也 -
另请注意,您的代码有点笨拙,因为
which返回400的所有匹配项,然后在:序列中只使用第一个匹配项。注意mtcars[-c(which(mtcars$disp==360):nrow(mtcars)),]上的警告 -
感谢您的浏览。从第一场比赛开始就可以了,因为这实际上是这里的目标,正如我在 Q“第一场比赛到最后一行”中所写的那样。
-
感谢您的浏览。从第一场比赛开始就可以了,因为这实际上是这里的目标,正如我在 Q“第一场比赛到最后一行”中所写的那样。
标签: r dataframe data.table dplyr