R 如何根据[is not]条件对xts对象进行子集划分

R 如何根据[is not]条件对xts对象进行子集划分,r,xts,R,Xts,我有一个xts对象,现在我想选择除某个时段之外的所有索引行 我理解指定my.object[2015/2015-03-01]将选择2015年至2015年3月的索引行。但是,如何基于相同的xts语法进行is not操作 我已尝试使用我的.object[!2015/2015-03-01],但它不起作用。我不知道您为什么希望我的.object[!2015/2015-03-01]起作用。对字符串应用逻辑函数没有意义 无论如何,实现您想要的功能的一种方法是使用[.xts的which.i参数来查找整数索引。然

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

我理解指定my.object[2015/2015-03-01]将选择2015年至2015年3月的索引行。但是,如何基于相同的xts语法进行is not操作


我已尝试使用我的.object[!2015/2015-03-01],但它不起作用。

我不知道您为什么希望我的.object[!2015/2015-03-01]起作用。对字符串应用逻辑函数没有意义

无论如何,实现您想要的功能的一种方法是使用[.xts的which.i参数来查找整数索引。然后,您可以通过在另一次调用[.xts时使用负i从xts对象中删除这些观察值


谢谢。我可以问一下,which.I和which之间有什么区别吗?正如我在回答中所说,which.I是[.xts.的一个参数,它是一个函数。哦。我问的原因是它们使用which.I或which时的行为完全相同。@uncool:这是由于部分参数匹配。例如,尝试x[2007-01-04/2007-06-28,w=TRUE]。
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],]