您可以使用
data.table
如果您使用的是非常大的数据:
require(data.table)
data <- as.data.table(data)
buy <- as.data.table(buy)
sell <- as.data.table(sell)
setkey(data,id)
setkey(buy,refno)
setkey(sell,refno,sedolnumber)
dd <- setkey(data[buy,nomatch = 0],
id,
sedolnumber
)[
sell,nomatch = 0
][
order_placement_date >= FromDate & order_placement_date < ToDate &
sell_placement_date >= FromDate & sell_placement_date < ToDate,
][,
Units_Retained := as.numeric(as.character(units_buyed)) - as.numeric(as.character(units_sold))
]