按日期从另一个数据集汇总库存数据

时间:2016-05-26 14:13:10

标签: r aggregate

我有两个数据集(data2table1); data2是从雅虎财经中提取的价格数据。它看起来像这样:

          Date   Open   High    Low  Close   Volume Adj.Close
1   2016-01-29 161.61 164.43 161.33 164.37  6182800  162.7158
2   2016-01-28 160.68 160.90 158.47 160.51  8613400  158.8947
3   2016-01-27 160.57 162.23 158.61 159.30 10121900  157.6969
4   2016-01-26 159.50 161.72 159.49 161.54  5945200  159.9143
5   2016-01-25 160.41 160.72 158.67 158.70  5782500  157.1029
6   2016-01-22 160.91 161.24 159.62 160.79  7390600  159.1719
7   2016-01-21 157.81 160.29 156.88 158.60 16782400  157.0039
8   2016-01-20 157.25 158.88 154.38 157.61 16436000  156.0239
9   2016-01-19 161.45 161.62 158.81 160.02 10233800  158.4096

table1是来自实验的数据,如下所示:

         time2 raw_sentiment Price
1   2016-01-29      31.58333     0
2   2013-01-02    -814.75000     0
3   2013-01-03    -423.41667     0
4   2013-01-04    -408.16667     0
5   2013-01-05     596.75000     0
6   2013-01-06      55.62500     0
7   2013-01-07      15.75000     0
8   2013-01-08    -621.37500     0
9   2013-01-09     925.54167     0

正如您所看到的,table1中的天数存在差距。我想在Adj.Close中取出与data2time2具有相同日期的table1个数字。我一直在使用聚合函数的许多版本,它不断给我一些类似的东西:

 "variable lengths differ" or "invalid type (list).
你能救我吗?

2 个答案:

答案 0 :(得分:2)

这应该这样做,

data2$Adj.Close[data2$Date %in% table1$time2]

答案 1 :(得分:0)

这是一个data.table解决方案。

library(data.table)
setDT(data2)


data2[ Date %in% table1$tim2, .(Adj.Close) ]