【发布时间】:2018-03-13 07:57:18
【问题描述】:
考虑以下小标题:
library(tidyverse)
a <- tibble(id = 1:5, val = c(-1,-2,0,1,-1))
我想只选择 a 中的某些行:即我想从 a 的顶部删除行,直到剩余的第一行具有非负值在瓦尔。 所以在我上面的例子中,我想删除前两行(因为那里的 val 是负数),然后保留所有后续行。
我设法找到了解决方法:
idx <- which(a$val >= 0) %>% min()
a %>% slice(idx:nrow(a))
# A tibble: 3 x 2
id val
<int> <dbl>
1 3 0
2 4 1.00
3 5 -1.00
我觉得在 tidyverse 中有一个更优雅的解决方案。有什么提示吗? 谢谢。
【问题讨论】:
标签: r dataframe dplyr tidyverse