基于日期在R中合并

时间:2013-08-21 21:28:58

标签: r date merge

我正在使用getSymbols将股票数据从Yahoo导入R。

当我将其存储在数据框中时,它采用以下格式。

          IDEA.BO.Open IDEA.BO.High IDEA.BO.Low IDEA.BO.Close IDEA.BO.Volume
2007-03-09        92.40        94.25       84.00         85.55       63599400
2007-03-12        85.55        89.95       85.55         87.40       12490900
2007-03-13        88.50        91.25       86.20         89.85       16785000
2007-03-14        87.05        90.85       86.60         87.75        7763800
2007-03-15        90.00        94.00       88.80         91.45       14808200
2007-03-16        92.40        93.65       91.25         92.40        6365600

现在日期列没有名称。

我想根据日期导入2个股票数据并合并收盘价(在任意随机行集之间)。问题是,日期列未被识别。

我希望我的最终结果是这样的。

            IDEA.BO.Close      BHARTIARTL.BO.Close
2007-03-12      123                   333
2007-03-13      456                   645
2007-03-14      789                   999

我尝试了以下内容:

> c <- merge(Cl(IDEA.BO),Cl(BHARTIARTL.BO))
> c['2013-08/']
           IDEA.BO.Close BHARTIARTL.BO.Close

2013-08-06            NA              323.40
2013-08-07            NA              326.80
2013-08-08        157.90              337.40
2013-08-09        157.90              337.40

excel上的相同数据如下所示:

8/6/2013    156.75  8/6/2013    323.4
8/7/2013    153.1   8/7/2013    326.8
8/8/2013    157.9   8/8/2013    337.4
8/9/2013    157.9   8/9/2013    337.4

我不明白R中NA值背后的原因以及获取无NA值的合并数据的方法。

1 个答案:

答案 0 :(得分:1)

您需要了解有关xtszoo数据结构的更多信息。它们是具有订购指数的矩阵。当您转换为data.frames时,它们会变成带有“rownames”的列表。由print.data.frame显示但没有标题的属性。列表元素基于矩阵列的命名给出名称。 (我确实理解约书亚对这个问题的明显烦恼,因为他发布了许多关于如何使用xts-objects的SO示例。)