dplyr方法获取具有正值的最后一行

时间:2018-11-08 15:56:18

标签: r dplyr

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中做到这一点。

1 个答案:

答案 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