r - 按 R 中的类别分解银行对帐单

标签 r aggregate

这是银行对帐单的样本部分:

Category<-c(
"Merchandise",
"Dining",
"Lodging",
"Other Services",
"Dining",
"Merchandise",
"Merchandise",
"Other Services",
"Entertainment",
"Merchandise",
"Merchandise",
"Internet",
"Other Services",
"Merchandise",
"Merchandise",
"Merchandise",
"Other Services",
"Phone/Cable",
"Airfare",
"Airfare",
"Other Services",
"Merchandise",
"Merchandise",
"Internet",
"Other Services",
"Other Services",
"Phone/Cable",
"Other Services",
"Healthcare"
)

Debit<-as.numeric(c(
"26.34",
"4.75",
"9.88",
"31.26",
"8.67",
"64.64",
"5.18",
"15.5",
"10",
"12.93",
"10.02",
"6.95",
"39.93",
"16.39",
"24",
"40.35",
"27.33",
"11.12",
"214.2",
"214.2",
"4",
"86.28",
"19.99",
"19.99",
"13.68",
"205",
"10.96",
"85",
"1525"
))

df<-data.frame(Category,Debit)

输出如下:

         Category   Debit
1     Merchandise   26.34
2          Dining    4.75
3         Lodging    9.88
4  Other Services   31.26
5          Dining    8.67
6     Merchandise   64.64
7     Merchandise    5.18
8  Other Services   15.50
9   Entertainment   10.00
10    Merchandise   12.93
11    Merchandise   10.02
12       Internet    6.95
13 Other Services   39.93
14    Merchandise   16.39
15    Merchandise   24.00
16    Merchandise   40.35
17 Other Services   27.33
18    Phone/Cable   11.12
19        Airfare  214.20
20        Airfare  214.20
21 Other Services    4.00
22    Merchandise   86.28
23    Merchandise   19.99
24       Internet   19.99
25 Other Services   13.68
26 Other Services  205.00
27    Phone/Cable   10.96
28 Other Services   85.00
29     Healthcare 1525.00

从那里,要查看我在各个类别(例如“商品”)上花费的总金额,我必须这样做:

> sum(df$Debit[which(df$Category=="Merchandise")])
[1] 306.12

但是对每个类别一个一个地做那是很麻烦的。我想知道是否有更简洁的方式来显示它,以便在一列中列出 df$Category 的所有级别,在第二列中列出每个类别的总和。

像这样:

Merchandise 306.12
Other Services  421.7
Phone/Cable 22.08
etc...

有什么建议吗?

最佳答案

在基础 R 中,您可以使用 aggregate():

aggregate(Debit ~ Category, df, FUN = sum)        

这给出:

        Category   Debit
1        Airfare  428.40
2         Dining   13.42
3  Entertainment   10.00
4     Healthcare 1525.00
5       Internet   26.94
6        Lodging    9.88
7    Merchandise  306.12
8 Other Services  421.70
9    Phone/Cable   22.08

关于r - 按 R 中的类别分解银行对帐单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43420174/

相关文章:

r - 根据另一列中的常见值聚合 R 中列值的所有可能组合

r - 为data.frame中的多个变量按组计算平均值和标准差

python - Pandas:计算列中的一些值

r - 统计包中 "The grammar of graphics"的实现

mysql - 如何使聚合查询返回空集而不是 NULL 行?

r - 运行 weathercan 包时出错 - 致命 SSL/TLS 警报(例如握手失败))

python - 如何提高 R 在机器学习中的性能?

jquery - 子查询双穿+聚合函数

r - 如何将渐变填充应用于 ggplot2 中的 geom_rect 对象?

r - 如何为 llply 的并行模式设置 preschedule=FALSE?