【发布时间】:2019-07-16 19:08:56
【问题描述】:
透视和小计是电子表格和 SQL 中常见的辅助步骤。
假设一个带有字段date, myCategory, revenue 的data.table。假设您想知道日收入占所有收入的比例以及不同子组内的日收入比例,这样
b[,{
#First auxiliary variable of all revenue
totalRev = sum(revenue) #SUBGROUP OF ALL REV
#Second auxiliary variable of revenue by date, syntax wrong! How to do this?
{totalRev_date=sum(revenue), by=list(date)} #DIFFERENT SUBGROUP, by DATE's rev
#Within the subgroup by date and myCategory, we will use 1st&2nd auxiliary vars
.SD[,.(Revenue_prop_of_TOT=revenue/totalRev,
,Revenue_prop_of_DAY=revenue/totalRev_date) ,by=list(myCategory,date)]
},]
我们需要计算辅助总和,特定日期的所有收入和整个历史的所有收入。
最终结果应该是这样的:
date myCategory Revenue_prop_of_TOT Revenue_prop_of_DAY
2019-01-01 Cat1 0.002 0.2
...
你看到辅助变量只是帮助函数。
如何在 R data.table 中透视和计算小计?
【问题讨论】:
标签: r data.table pivot subtotal