我有两个数据集(data2
,table1
); 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
中取出与data2
中time2
具有相同日期的table1
个数字。我一直在使用聚合函数的许多版本,它不断给我一些类似的东西:
"variable lengths differ" or "invalid type (list).
你能救我吗?
答案 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) ]