请考虑以下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
看起来像这样:
x y
A 2
A 1
B 1
B 3
A 4
我想在df$y
中使用因值df$x
具有不同字母(级别)的公用值。在这个虚拟数据集中,答案将是第2行和第3行。能否请某人提供给我代码以应用于更大的数据集情况?
答案 0 :(得分:1)
您可以将y
的出现次数添加到df
,然后对大于1的次数进行过滤并提取unique
记录:
df %>% left_join(
df %>% count(
y
),
by = 'y'
) %>% filter(
n > 1
) %>% select(
-n
) %>% unique()
这产生
x y
1 A 1
2 B 1
答案 1 :(得分:1)
尝试一下:
library(data.table)
library(dplyr)
df %>%
group_by(y) %>%
filter(uniqueN(x) > 1)