我正在尝试根据特定条件选择特定行。想要获得相对于第一列在z以下的所有值,并排除顶部的那些。我尝试使用过滤器和分组依据,但是在下面提供的输入和预期输出中不起作用
Input
abc x
abc y
abc z
abc g
abc t
pqr x
pqr z
pqr y
cvb z
cvb x
cvb y
预期输出
abc g
abc t
pqr y
cvb x
cvb y
答案 0 :(得分:0)
这是通过dplyr
的可能解决方案,
library(tidyverse)
df %>%
group_by(a) %>%
mutate(new = row_number()) %>%
filter(new > new[b == 'z']) %>%
select(-new)
给出,
# A tibble: 5 x 2 # Groups: a [3] a b <chr> <chr> 1 a g 2 a t 3 b y 4 c x 5 c y
数据:
structure(list(a = c("a", "a", "a", "a", "a", "b", "b", "b",
"c", "c", "c"), b = c("x", "y", "z", "g", "t", "x", "z", "y",
"z", "x", "y")), row.names = c(NA, -11L), class = "data.frame")