Используя R, я пытаюсь получить две агрегатные функции max и count отдельно и для значений, присутствующих во фрейме данных, и сгруппировать их на основе двух других столбцов.
A = c('A', 'A', 'A', 'B', 'B', 'B')
B = c('R1', 'R2', 'R1', 'R1', 'R2', 'R1')
C = c(11, 2, 8, 11, 11, 17)
d = data.frame (A, B, C)
sqldf('select A, B, count(distinct(C)) as UNIQUE_COUNT from d group by A, B')
Правильный вывод
A B UNIQUE_COUNT
1 A R1 2
2 A R2 1
3 B R1 2
4 B R2 1
Я могу сделать это, используя обычный sql, используя пакет sqldf в R. Я пытался сделать то же самое, используя native R, чтобы избежать sql.Я попытался выполнить следующий запрос, приведенный ниже, но он дал неправильный вывод.
Неверный запрос
d %>%
group_by(A,B)%>%
summarise(UNIQUE_COUNT = n_distinct(C))
Неверный вывод
UNIQUE_COUNT
1 4
Любое предложение о том, что я делаю неправильно