我在交易平台上有两个买卖订单数据集,如下所示:
buy[45:50,]
NO SECCODE BUYSELL TIME ORDERNO ACTION PRICE VOLUME TRADENO TRADEPRICE
45 7880 SU25077RMFS7 B 1e+08 7880 1 98.4001 250 NA NA
46 7976 SU24018RMFS2 B 1e+08 7976 1 101.9989 4 NA NA
47 8314 SU52001RMFS3 B 1e+08 8314 1 94.6000 200 NA NA
48 8607 SU29009RMFS6 B 1e+08 8607 1 101.4000 22 NA NA
49 8735 SU29009RMFS6 B 1e+08 8735 1 101.4000 2 NA NA
50 8915 SU26206RMFS1 B 1e+08 8915 1 91.0002 225 NA NA
和
sell[45:50,]
NO SECCODE BUYSELL TIME ORDERNO ACTION PRICE VOLUME TRADENO TRADEPRICE
45 18767 SU26215RMFS2 S 100004130 13929 1 77.7410 6 NA NA
46 18831 SU26205RMFS3 S 100004156 13959 1 84.4680 3 NA NA
47 30345 SU26211RMFS1 S 100009446 19505 1 82.1999 7 NA NA
48 48387 SU24018RMFS2 S 100015879 3865 2 101.9989 4 2516559570 101.9989
49 54854 SU26212RMFS9 S 100019214 8920 0 77.2499 58 NA NA
50 55493 SU26212RMFS9 S 100019734 31671 1 74.6999 58 NA NA
我需要通过比较“购买”中的所有行和“出售”中的所有行来找到PRICE中的所有匹配项。例如,第一数据集的行46中的PRICE与第二数据集的行48中的PRICE一致。 预期的输出是将相应行合并为单行的数据帧,即从第一个数据集的第46行和第二个数据集的第48行中排成一行(老实说,我什至不关心输出如何看起来就像,我只需要找到对应订单的时间和价格。
我尝试过
d <- data[data$PRICE %in% intersect (sell$PRICE, buy$PRICE),]
其中data
同时包含“购买”和“出售”定单,但不起作用。据我了解,match
和find.matches
仅比较相应的行,但是我需要比较“购买”中的所有行和“出售”中的所有行。
如果有人已经问过类似的问题,我很抱歉,但是我找不到类似的问题。
答案 0 :(得分:0)
您可以将merge()
函数与all = True
一起使用
alldata <- merge(x= buy, y= sell , by = "PRICE", all = TRUE)