r - 如何根据 [is not] 条件对 xts 对象进行子集化

标签 r xts

我有一个 xts 对象,现在我想选择除特定时间段之外的所有索引行。

我知道指定 my.object["2015/2015-03-01"] 将选择 2015 年到 2015 年 3 月的索引行。但是我如何才能基于相同的 xts 语法?

我尝试过 my.object[!"2015/2015-03-01"] 但它不起作用。

最佳答案

我不确定为什么您会期望 my.object[!"2015/2015-03-01"] 能够工作。将逻辑函数应用于字符串没有意义。

无论如何,完成您想要的任务的一种方法是使用 [.xtswhich.i 参数来查找整数索引。然后,您可以通过在另一个对 [.xts 的调用中使用负 i 来从 xts 对象中删除这些观察结果。

R> require(xts)
R> data(sample_matrix)
R> x <- as.xts(sample_matrix)
R> unwantedObs <- x["2007-01-04/2007-06-28", which.i=TRUE]
R> x[-unwantedObs,]
               Open     High      Low    Close
2007-01-02 50.03978 50.11778 49.95041 50.11778
2007-01-03 50.23050 50.42188 50.23050 50.39767
2007-06-29 47.63629 47.77563 47.61733 47.66471
2007-06-30 47.67468 47.94127 47.67468 47.76719
R> # in one line:
R> #x[-x["2007-01-04/2007-06-28", which.i=TRUE],]

关于r - 如何根据 [is not] 条件对 xts 对象进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029478/

相关文章:

r - 使用 dplyr 计算组均值,同时排除当前观察

r - 从 xml2 和 rvest 子集 data.frame 时出错

带分数的 r 标签图

R:将 xts 系列从多个文件加载到单个 block 中

r - 为什么我不能直接绘制 xts 的箱线图?

r - 使用 R 的 dygraph 仅按年份绘制 xts 时间序列?

r - `purrr::pmap()` 是否忽略了额外的列?

r - 在点阵图中的 y 轴上显示 "0"标签

r - 识别并替换列向量中的重复项

r - 日期(错误)与最新版本的 xts 对齐