найти общие значения вектора, принадлежащие разным уровням фактора другого вектора - PullRequest
0 голосов
/ 26 января 2019

Рассмотрим следующее 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. Может ли кто-нибудь предоставить мне код, который можно применить в случае набора данных большего размера?

Ответы [ 2 ]

0 голосов
/ 26 января 2019

Попробуйте это:

library(data.table)
library(dplyr)

df %>%
  group_by(y) %>%
  filter(uniqueN(x) > 1)
0 голосов
/ 26 января 2019

Вы можете добавить число вхождений от 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...