library(tidyverse)
df <- tibble(a = c(1, 2, 3, 0, 5, 0, 7, 0, 0, 0)) %>% print()
df[1:max(which(df$a>0)),]
This little code chunk above确定df
的第七行是包含正值的最后一行,并从数据帧中过滤出该第七行之后的每一行。
我从这里走
# A tibble: 10 x 1
a
<dbl>
1 1.
2 2.
3 3.
4 0.
5 5.
6 0.
7 7.
8 0.
9 0.
10 0.
对此
# A tibble: 7 x 1
a
<dbl>
1 1.
2 2.
3 3.
4 0.
5 5.
6 0.
7 7.
如何使用dplyr tidyverse s语执行此df[1:max(which(df$a>0)),]
?我需要学习R,和will ,但是现在我必须在tidyverse中做到这一点。
答案 0 :(得分:3)
我们可以使用slice
library(tidyverse)
df %>%
slice(1:max(which(a > 0)))
# a
# <dbl>
#1 1
#2 2
#3 3
#4 0
#5 5
#6 0
#7 7
或filter
,在这里我们选择小于max
的{{1}}索引的行。
a > 0