orders<-Matrix(as.matrix(data.frame(orderNum=1:1000,
customer=sample(100,1000,TRUE))),sparse=TRUE)
cancelledOrders<-Matrix(as.matrix(data.frame(orderNum=sample(1000,100),
cancelled=1)),sparse=TRUE)
skus<-Matrix(as.matrix(data.frame(orderNum=sample(1000,10000,TRUE),
sku=sample(1000,10000,TRUE),
amount=runif(10000))),sparse=TRUE)
a<-merge.Matrix(orders,cancelledOrders,orders[,'orderNum'],cancelledOrders[,'orderNum'])
b<-merge.Matrix(orders,cancelledOrders,orders[,'orderNum'],cancelledOrders[,'orderNum'],
type='inner')
c<-merge.Matrix(orders,skus,orders[,'orderNum'],skus[,'orderNum'])
## Not run:
orders<-data.frame(orderNum=sample(1e6, 1e7, TRUE),
sku=sample(1e3, 1e7, TRUE),
customer=sample(1e4,1e7,TRUE))
cancelledOrders<-data.frame(data.frame(orderNum=sample(1e6,1e5),cancelled=1))
system.time(b<-merge.Matrix(orders,cancelledOrders,orders[,'orderNum'],
cancelledOrders[,'orderNum'],type='inner'))
#The following is the equivalent call in plyr, but returns an error due to a bug in plyr
system.time(c<-plyr::join(orders,cancelledOrders,type='inner',match='first'))
Run the code above in your browser using DataLab