【发布时间】:2014-06-12 00:37:18
【问题描述】:
我想按日期合并两个 data.frames。数据包含给定股票的每个交易日的股票数据。事件包含有关公司的新闻。一些消息是在非交易日发布的,因此当天没有股票数据。例如,在 2000 年 1 月 4 日,公司发布了一些新闻。我想将这篇文章与下一个交易日的回报合并,在这种情况下是 06.01.2000 的回报。那么合并时如何跳转到下一个交易日呢?
date1 <- c("01.01.2000","02.01.2000","03.01.2000","06.01.2000","07.01.2000","09.01.2000")
ret1 <- c(-2.0,1.1,3,1.4,-0.2, 0.6)
data <- data.frame(date1, ret1)
data
# date1 ret1
# 1 01.01.2000 -2.0
# 2 02.01.2000 1.1
# 3 03.01.2000 3.0
# 4 06.01.2000 1.4
# 5 07.01.2000 -0.2
# 6 09.01.2000 0.6
date2 <- c("02.01.2000","03.01.2000","04.01.2000","08.01.2000")
news2 <- c("blabla1", "blabla2","blabla3","blabla4")
events <- data.frame(date2, news2)
events
# date2 news2
# 1 02.01.2000 blabla1
# 2 03.01.2000 blabla2
# 3 04.01.2000 blabla3
# 4 08.01.2000 blabla4
输出应如下所示:
# date news ret
# 1 02.01.2000 blabla1 1.1
# 2 03.01.2000 blabla2 3.0
# 3 06.01.2000 blabla3 1.4
# 4 09.01.2000 blabla4 0.6
谢谢!
【问题讨论】:
-
以我糟糕的 R 技能,我什至无法想象任何合理的可行方法..
-
注意:使用
stringsAsFactors=FALSE创建data.frame,以便date1和date2不是连接与data.table解决方案一起正常工作的因素。 -
@阿伦:谢谢你的帮助!现在,当我有多个公司的面板时,我该怎么办?我在这里针对小组情况发布了相同的问题:stackoverflow.com/questions/23309515/…