Sql 如何根据特定条件选择行
我正在尝试根据特定条件选择特定行。希望得到相对于第一列的z以下的所有值,并排除顶部的值。我尝试使用filter和GroupBy,但它不能正常工作,下面提供了输入和预期输出Sql 如何根据特定条件选择行,sql,r,Sql,R,我正在尝试根据特定条件选择特定行。希望得到相对于第一列的z以下的所有值,并排除顶部的值。我尝试使用filter和GroupBy,但它不能正常工作,下面提供了输入和预期输出 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
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
这里有一个可能的解决方案,通过
dplyr
library(tidyverse)
df %>%
group_by(a) %>%
mutate(new = row_number()) %>%
filter(new > new[b == 'z']) %>%
select(-new)
这就给了,
你能分享一下预期的结果吗?请使用
dput
共享您的数据,以便我们可以直接工作。我编写的“输出”是我试图实现的预期输出。请使用dput
共享您的输入数据集好吗?输入数据是我在图中提供的数据。。我不知道如何共享输入数据集。真的很抱歉,因为我不经常在这里发布。如果你能提出一个解决方案,那将是一个很大的帮助
# 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")