R 查找属于另一个向量的因子的不同级别的向量的公共值

R 查找属于另一个向量的因子的不同级别的向量的公共值,r,dataframe,R,Dataframe,考虑以下data.frame: set.seed(1);x <- sample( LETTERS[1:2], 5, replace=TRUE) y <- c(2,1,1,3,4) df <- data.frame(x,y) 我希望在df$y中具有系数df$x的不同字母(级别)的公共值。在这个虚拟数据集中,答案是第2行和第3行。请有人提供用于更大数据集案例的代码吗?您可以将出现的y的计数添加到df,然后对大于1的计数进行过滤,并提取唯一的记录: df %>% left_j

考虑以下
data.frame

set.seed(1);x <- sample( LETTERS[1:2], 5, replace=TRUE)
y <- c(2,1,1,3,4)
df <- data.frame(x,y)

我希望在
df$y
中具有系数
df$x
的不同字母(级别)的公共值。在这个虚拟数据集中,答案是第2行和第3行。请有人提供用于更大数据集案例的代码吗?

您可以将出现的
y
的计数添加到
df
,然后对大于1的计数进行过滤,并提取
唯一的
记录:

df %>% left_join(
  df %>% count(
    y
  ),
  by = 'y'
) %>% filter(
  n > 1
) %>% select(
  -n
) %>% unique()

这就产生了

  x y
1 A 1
2 B 1
试试这个:

library(data.table)
library(dplyr)

df %>%
  group_by(y) %>%
  filter(uniqueN(x) > 1)
library(data.table)
library(dplyr)

df %>%
  group_by(y) %>%
  filter(uniqueN(x) > 1)