查找唯一日期的总和

时间:2014-09-04 10:24:05

标签: r

我是R的新手,正在使用我运行的网站上的付款详细信息数据集。我有一个数据框,其中包括以下列:

¦  Date ¦ Amount ¦ Type

每行是具有不同金额的个人付款。我希望找到一种方法,无需循环支付25,000左右的付款,即可找到数据集中每天的总付款金额。

我尝试了sum(sub$Amount[sub$Date == unique(sub$Date)]),但会引发以下错误:

Warning message:
In sub$Date == unique(sub$Date) :
  longer object length is not a multiple of shorter object length

正如我所说,我对R来说很新,所以我确定我错过了一些基本的东西,但是如果没有循环就能解决这个问题。< / p>

4 个答案:

答案 0 :(得分:3)

尝试使用基础R:

with(sub, tapply(Amount, Date, sum))

答案 1 :(得分:1)

您可以使用plyr库中的ddply:

require(plyr)
ddply(sum, .(Date), summarize, sum=sum(Amount))

答案 2 :(得分:1)

library(data.table)
setDT(sub)[, sum(Amount), by = Date]

答案 3 :(得分:0)

非常相似的dplyr解决方案:

library(dplyr)
sub %>%
  group_by(Date) %>%
  summarize(sum=sum(Amount))