Подсчет наблюдений внутри групп - PullRequest
0 голосов
/ 30 января 2019

У меня есть фрейм данных со значениями да / нет для разных дней и часов.Для каждого дня я хочу получить общее количество часов, в которых у меня есть данные, а также общее количество часов, в которых есть значение Y.

df <- data.frame(day = c(1,1,1,2,2,3,3,3,3,4),
                 hour = c(1,2,3,1,2,1,2,3,4,1),
                 YN = c("Y","Y","Y","Y","Y","Y","N","N","N","N"))

df %>% 
  group_by(day) %>%
  summarise(tot.hour = n(),
            totY = WHAT DO I PUT HERE?)

1 Ответ

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

Используя логическое значение, затем сложите его

df %>% 
    group_by(day) %>%
    dplyr::summarise(tot.hour = n(),
              totY = sum(YN=='Y'))
# A tibble: 4 x 3
    day tot.hour  totY
  <dbl>    <int> <int>
1     1        3     3
2     2        2     2
3     3        4     1
4     4        1     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...