R 语言按行值减少数据框
R Language Reduce a Dataframe by Row Values
在 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
我该怎么做?
假设您的 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))
在 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
我该怎么做?
假设您的 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))