我有这样的数据集:
Company Month Price Quantity
A 1/1/2014 46 4788
B 1/1/2014 43 6242
C 1/1/2014 50 5432
D 1/1/2014 26 4153
A 2/1/2014 21 5301
B 2/1/2014 46 2706
C 2/1/2014 33 9803
D 2/1/2014 42 9208
A 3/1/2014 45 6309
B 3/1/2014 30 9457
C 3/1/2014 20 6050
D 3/1/2014 16 3151
我正在尝试执行一个简单的函数sum(price * quantity)
,该函数在数据集中每个月求和,并将结果发送到新的数据框。
结果如下:
Month Result
1/1/2014 868232
2/1/2014 946032
3/1/2014 739031
我尝试了aggregate()
功能,但我没有运气。这和subset()
函数一样简单吗?在此先感谢您的帮助。
答案 0 :(得分:1)
按照'月'进行分组后,获取' Price',' Quantity'的产品。和sum
它
library(dplyr)
df1 %>%
group_by(Month) %>%
summarise(Result = sum(Price*Quantity))
# A tibble: 3 x 2
# Month Result
# <chr> <int>
#1 1/1/2014 868232
#2 2/1/2014 946032
#3 3/1/2014 739031
或使用aggregate
aggregate(cbind(Result = Price*Quantity) ~ Month, df1, FUN = sum)
# Month Result
#1 1/1/2014 868232
#2 2/1/2014 946032
#3 3/1/2014 739031
答案 1 :(得分:0)
dplyr
和lubridate
包可让您按月分组,然后汇总:
library(dplyr)
library(lubridate)
sum_monthly <- df %>%
mutate(Month = mdy(Month)) %>% # Converting month to date format
group_by(month(Month)) %>%
summarise(Result = sum(Quantity * Price))