#r #tidyverse
#r #tidyverse
Вопрос:
Я хотел бы найти в этом фрейме данных элементы var1, для которых элементы var2 отличаются
data.frame(var1=c(«a», «a»,»a»,»b», «b», «c», «c», «c»), var2 = c(«X», «X», «X», «Y»,»Z»,»W»,»W»,»W»), stringsAsFactors = F)
ожидаемый результат
data.frame(var1=c(«b»))
Заранее большое спасибо!
Ответ №1:
Работает ли это:
library(dplyr)
df %>% group_by(var1) %>% filter(length(unique(var2))>1) %>% distinct(var1)
# A tibble: 1 x 1
# Groups: var1 [1]
var1
<chr>
1 b
Ответ №2:
Следуя другому альтернативному подходу @Karthik и, если я правильно понял вопрос.
library(dplyr)
df <- data.frame(var1=c("a","a","a","b","b","c","c","c"), var2=c("X","X","X","Y","Z","W","W","W"), stringsAsFactors = F)
dplyr::select(
distinct(df)[duplicated(distinct(df)$var1),], var1
)
Вызывайте select только в том случае, если вам нужно гарантировать, что вывод представляет собой фрейм данных / tibble.