提供表格:
Date SYMBOL ID
1 2019-03-12 A 1
2 2019-03-19 A 2
3 2019-03-20 A 1
4 2019-03-21 A 2
5 2019-03-22 A 1
6 2019-03-23 A 2
目标是在每行后面添加一列,以计算ID值占按符号分组的所有ID之和的百分比。
SUM(IDs) grouped by Symbol / ID
当前,我首先通过计算总和来实现
percentBase <- aggregate(ID~SYMBOL, data = df, FUN = sum)
然后使用Apply计算百分比
computePercentage <- function(row,output){
as.integer(row[3]) / percentBase[percentBase$SYMBOL==row[2],2]
}
df$percentage <- apply(df,1,computePercentage)
使用apply并不断地进行铸造会花费很长时间并且效率低下。如何正确解决这一任务?