【问题标题】:How to combine xts datasets with slightly different dates如何组合日期略有不同的 xts 数据集
【发布时间】:2016-02-20 19:04:51
【问题描述】:

我一直在使用来自多个来源的数据(例如 Yahoo 和 FRED)通过 quantmod 建立财务模型,它返回 xts 数据类型。

我可以从 Yahoo 获取数据集,没问题。我还设法将 52 周的高/低和移动平均线添加为数据集中的列。我现在的问题是,如何添加一个全新的数据集?因此,除了我所有的专栏之外,我还想添加一个使用 FRED 利率的专栏。主要问题是日期略有不同,因为债券和股票市场有不同的假期。组合这些数据集的最佳方法是什么?我不介意并且有兴趣使用 na.spline() 来填充缺失的数据。

require(quantmod)

fiveYearsAgo = Sys.Date() - (365 * 5) # This is not exactly five years

bondIndex <- getSymbols("LQD",src="google",from = fiveYearsAgo, auto.assign = FALSE)[,c(0,4)]

print (bondIndex[,1]) # works

bondIndex$fedFund <- na.spline(getSymbols("DFF", src = "FRED", from = fiveYearsAgo, auto.assign = FALSE),na.rm = TRUE)

print (bondIndex[,2]) #Has a trailing NA

print (bondIndex) #Has a mix of NA

【问题讨论】:

    标签: r xts quantmod


    【解决方案1】:

    您正在寻找的是merge 函数。类似的东西

    merge(bondIndex[,1], bondIndex[,2], all = TRUE)
    

    【讨论】:

    • 我感觉可能是这样。首先,我不确定输出是什么。我需要分配给一个新变量还是只分配给第一个变量?其次,查看documentationall = TRUE 会将一些 NA 放入数据集中。我应该只做bondIndex &lt;- na.spline(bondIndex)吗?
    • 是的,我想是的。首先尝试数据子集,看看替换 NA 的最佳方法是什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2017-11-12
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多