Язык R Сокращает Фрейм Данных на Значения Строки - PullRequest
0 голосов
/ 22 января 2019

в R У меня есть следующий фрейм данных:

    badge_name year.month count
1      Teacher     2009-1  2161
2      Teacher     2009-2  2193
3      Teacher     2009-3  2163
4      Teacher     2009-4  2205
5      Teacher     2009-5  3004
6      Teacher     2009-6  2865
7      Teacher     2009-7  2936
8      Teacher     2009-8  2762
9      Teacher     2009-9  2433
10     Teacher    2009-10  3001
11     Teacher    2009-11  3650
12     Teacher    2009-12  3480
13     Student     2009-1  1980
14     Student     2009-2  1933
15     Student     2009-3  2197
16     Student     2009-4  2243
17     Student     2009-5  2725
18     Student     2009-6  2904
19     Student     2009-7  3069
20     Student     2009-8  3015
21     Student     2009-9  2839
22     Student    2009-10  3603
23     Student    2009-11  4208
24     Student    2009-12  4188
...

Я хотел бы создать новый фрейм данных таким образом, чтобы все строки были свернуты по годам и все суммы были суммированы.

    badge_name     year   count
1      Teacher     2009   32853
2      Student     2009   34904

Как бы я поступил так?

1 Ответ

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

Предполагая ваши data.frame df. Использование dplyr:

library(dplyr)

df %>% mutate(year = substr(year.month, 1, 4)) %>%
       group_by(badge_name, year) %>% 
       summarise(count = sum(count))

С base R вы можете сделать что-то вроде:

df$year <- substr(df$year.month, 1, 4)
with(df, tapply(count, df[,c('badge_name', 'year')], sum))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...