筛选dplyr中具有重复值的行

筛选dplyr中具有重复值的行,r,dplyr,R,Dplyr,Tibble: df <- tibble(x = c(1, 3, 2, 5, 3, 7, 1, 9), y = c(rep("condition_one", 5), rep("condition_two", 3))) 输出: # A tibble: 1 x 2 x y <dbl> <chr> 1 3 condition_one #一

Tibble:

df <- tibble(x = c(1, 3, 2, 5, 3, 7, 1, 9),
              y = c(rep("condition_one", 5), rep("condition_two", 3)))
输出:

# A tibble: 1 x 2
      x y            
  <dbl> <chr>        
1     3 condition_one
#一个tible:1 x 2
xy
1 3条件1
尽管它只返回重复的行,而不是“原始”行。 在这种情况下,我还可以在dplyr管道链中包含什么解决方案

编辑:

df <- tibble(x = c(1, 3, 2, 5, 3, 7, 1, 9),
              y = c(rep("condition_one", 5), rep("condition_two", 3)))
我发现有些答案仍然不能解决我的问题,我认为这是因为我的问题措辞不当: 在过滤输出中,我只需要
x
中的值不唯一的行。但是我希望R返回所有非唯一的行,而不仅仅是第一次出现重复值的行(这发生在
duplicate()
)。
最重要的是,我想知道你是否想在df$y满足“条件一”或相反的宇宙中找到重复项。两种情况我都写

在R基中:

案例1:找到所有重复项,然后找到符合条件的项

all_duplicates <- df[duplicated(df$x) | duplicated(df$x, fromLast = TRUE), ]
your_condition <- all_duplicates[all_duplicates$y == "condition_one", ]

all_duplicates我不确定你是否想在df$y满足“条件1”或相反条件的宇宙中找到重复项。两种情况我都写

在R基中:

案例1:找到所有重复项,然后找到符合条件的项

all_duplicates <- df[duplicated(df$x) | duplicated(df$x, fromLast = TRUE), ]
your_condition <- all_duplicates[all_duplicates$y == "condition_one", ]

使用
dplyr

library(dplyr)
df %>%
    filter(duplicated(cur_data()) & y == 'condition_one')

使用
dplyr

library(dplyr)
df %>%
    filter(duplicated(cur_data()) & y == 'condition_one')
以下是解决方案:

df %>% 
  group_by(x) %>% 
  filter(y == "condition_one" & n() == 1) %>% 
  ungroup()

#Results:
# A tibble: 2 x 2
      x y            
  <dbl> <chr>        
1     2 condition_one
2     5 condition_one
df%>%
分组依据(x)%>%
过滤器(y==“条件之一”&n()==1)%>%
解组()
#结果:
#一个tibble:2x2
xy
1 2条件1
2.5条件1
以下是解决方案:

df %>% 
  group_by(x) %>% 
  filter(y == "condition_one" & n() == 1) %>% 
  ungroup()

#Results:
# A tibble: 2 x 2
      x y            
  <dbl> <chr>        
1     2 condition_one
2     5 condition_one
df%>%
分组依据(x)%>%
过滤器(y==“条件之一”&n()==1)%>%
解组()
#结果:
#一个tibble:2x2
xy
1 2条件1
2.5条件1

您可以执行
df%>%groupby(x,y)%%>%filter(n()!=1)
您可以执行
df%>%groupby(x,y)%%>%filter(n()!=1)
。这仍然只返回重复值,而不是“原始”值。我的错。现在应该可以了。我忘了添加df$x,而不仅仅是dfIt仍然只为我返回重复的值哦,好吧,我想我已经找到了。这仍然只返回重复的值,而不是“原始”值。我的错。现在应该可以了。我忘了添加df$x,而不仅仅是dfIt仍然只返回meOh的重复值好的,我想我已经找到了。这将返回
x
中的值2和5。不是
x
中的第二行和第五行,其中3是重复值。这将返回
x
中的值2和5。不是
x
中的第二行和第五行,其中3是重复值。这只返回
x
中的第一个重复值。这只返回
x
中的第一个重复值