R数据帧上的列的总和

时间:2015-07-20 14:09:54

标签: r dataframe

我有一个像这样的数据框

    a      b
1   A.1    1
2   A.2    2
3   A.3    1
5   B.1    2
6   B.2    2
7   B.3    1

我需要为每个字母(这里是A和B)计算b列的总和

    a   b
1   A   4
2   B   5

1 个答案:

答案 0 :(得分:2)

一个选项是使用D中的D根据分隔符separate分隔列'a',使用新的'a'分组并获取tidyr 'b'。

.

或者我们可以使用sum。将'data.frame'转换为'data.table'(library(tidyr) library(dplyr) separate(df1, a, into=c('a', 'a1')) %>% group_by(a) %>% summarise(b=sum(b)) # a b #1 A 4 #2 B 5 )。使用data.table删除从setDT(df1)开始的字符,后跟数字,将其用作分组变量并获取“{1}}的”b“。

sub

使用来自.的{​​{1}}的公式方法的类似选项。

sum

或使用library(data.table) setDT(df1)[,list(b=sum(b)) , by = .(a=sub('\\.\\d+$', '', a))] # a b #1: A 4 #2: B 5

aggregate

数据

base R