我有这样的数据框.
> df1
portfolio date ticker quantity price
1 port 2010-01-01 AAPL 100 10
2 port 2010-01-01 AAPL 200 10
3 port 2010-01-01 AAPL 400 11
Run Code Online (Sandbox Code Playgroud)
如果df1except 的行quantity相同,则添加quantity公共行.我的意思是,我需要以下输出
portfolio date ticker quantity price
1 port 2010-01-01 AAPL 300 10
3 port 2010-01-01 AAPL 400 11
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?谢谢..
干得好... :-)
用于plyr:
ddply(df, .(portfolio, date, ticker, price),summarize, quantity=sum(quantity))
Run Code Online (Sandbox Code Playgroud)
用于data.table:
dt <- data.table(df)
dt[,list(quantity=sum(quantity)),by=list(portfolio,date,ticker,price)]
Run Code Online (Sandbox Code Playgroud)
可能有一种更简洁的方式来表达分组变量列表.否则,aggregate解决方案更加优雅.