Группировка по и резюме с условием - PullRequest
1 голос
/ 11 июня 2019

У меня есть фрейм данных df.После group_by(id, Year, Month, new_used_ind) и summarise(n = n()) это выглядит следующим образом:

id  Year   Month  new_used_ind   n
1   2001   apr     N             3
1   2001   apr     U             2
2   2002   mar     N             5
3   2003   mar     U             3
4   2004   july    N             4          
4   2004   july    U             2

Я хочу добавить и получить итоговое значение для идентификатора, года и месяца, но также хочу получить итоговое значение 'N' из new_used_ind в новом столбце.

Примерно так

id  Year   Month  Total_New   total
1   2001   apr     3            5
2   2002   mar     5            8
4   2004   july    4            6

1 Ответ

1 голос
/ 11 июня 2019
library(dplyr)

read.table(text= "id  Year   Month  new_used_ind   n
1   2001   apr     N             3
1   2001   apr     U             2
2   2002   mar     N             5
3   2003   mar     U             3
4   2004   july    N             4          
4   2004   july    U             2", header = T) -> df

df %>%
  group_by(id, Year, Month) %>%
  mutate(total_New=sum(n*(new_used_ind=="N"))) %>% 
  mutate(total_n=sum(n)) %>% 
  summarise_at(c("total_New", "total_n"), mean)

#> # A tibble: 4 x 5
#> # Groups:   id, Year [4]
#>      id  Year Month total_New total_n
#>   <int> <int> <fct>     <dbl>   <dbl>
#> 1     1  2001 apr           3       5
#> 2     2  2002 mar           5       5
#> 3     3  2003 mar           0       3
#> 4     4  2004 july          4       6

Создано в 2019-06-11 пакетом представ (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...