我有一个xts对象,现在我想选择除了一段时间之外的所有索引行。
据我所知,指定my.object["2015/2015-03-01"]
会选择2015年到2015年3月的索引行。但是,如何根据相同的xts语法创建不是操作?
我已经尝试了my.object[!"2015/2015-03-01"]
,但它不起作用。
答案 0 :(得分:4)
我不确定为什么你会期望my.object[!"2015/2015-03-01"]
能够发挥作用。将逻辑函数应用于字符串是没有意义的。
无论如何,实现目标的一种方法是使用which.i
[.xts
参数来查找整数索引。然后,您可以在另一次调用i
时使用否定[.xts
从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],]