如何提取数据帧 n R 中第一次出现非零数字?

Bio*_*eek 6 r dataframe

在一项实验中,我试图找到第一胎出生的时间。id 和rep 给出了四种动物(A1、A2、B1、B2)、它们的年龄和婴儿。对于每个 id 和rep,我只想保留婴儿第一次出生的行

id <- c("A","A","A","A","A","A","B","B","B","B","B","B","B","B","B")
rep <- c(1,1,1,2,2,2,1,1,1,1,2,2,2,2,2)
age <- c(0,1,2,0,1,2,0,1,2,3,0,1,2,3,4)
babies <- c(0,0,1,0,1,0,0,0,0,1,0,0,0,1,1)

df <- data.frame(id,rep,age,babies)
Run Code Online (Sandbox Code Playgroud)

所以在这里,最终的数据框应该是这样的

id <- c("A","A","B","B")
rep <- c(1,2,1,2)
age <- c(2,1,3,3)
babies <- c(1,1,1,1)

df <- data.frame(id,rep,age,babies)
Run Code Online (Sandbox Code Playgroud)

akr*_*run 4

library(dplyr)
df %>% 
   group_by(id, rep) %>% 
   slice_max(babies, n = 1, with_ties = FALSE) %>%
    ungroup
Run Code Online (Sandbox Code Playgroud)
df %>%
   group_by(id, rep) %>% 
   filter(row_number() == which(babies > 0)[1]) %>% 
   ungroup
Run Code Online (Sandbox Code Playgroud)