删除日期和 xts 时间序列的观察结果

deleting a date and the observations of an xts time series

我是 R 的新手,所以我想我有一些初学者的问题...

我的数据是 xts 时间序列,但我希望从数据中删除一个(或多个)日期。下面是我的数据和 class.

的尾部

我想做的是从 [x] 系列中删除 [2017-11-16] 的整行。有简单的方法吗?

> tail(x)
           CC1.CLOSE CC1.HIGH CC1.LOW CC1.OPEN
2017-11-09      2185     2198    2169     2196
2017-11-10      2212     2226    2179     2186
2017-11-13      2201     2214    2178     2199
2017-11-14      2155     2204    2152     2196
2017-11-15      2129     2162    2110     2155
2017-11-16      2140     2152    2132     2133
> class(x)
[1] "xts" "zoo"
> str(x)
An ‘xts’ object on 2016-01-04/2017-11-16 containing:
  Data: int [1:474, 1:4] 3063 2998 2920 2902 2956 2841 2799 2831 2796 2844 ...
 - attr(*, "dimnames")=List of 2
  ..$ : NULL
  ..$ : chr [1:4] "CC1.CLOSE" "CC1.HIGH" "CC1.LOW" "CC1.OPEN"
  Indexed by objects of class: [POSIXct,POSIXt] TZ: UTC
  xts Attributes:  
 NULL

这种情况下的解决方案是

x["/2017-11-15"]

您可以查看 this cheat sheet 了解有关 xts 软件包的更多信息。

如果您只想删除最后一行,您可以像这样从 X 创建一个新的 xts:

x.new <- first(x, (length(MSFT[,1]) - 1))

这将删除最后一行。

您还可以通过执行以下操作来摆脱索引:coredata(x) 这有时可以使操作数据变得更容易。

一个简单的方法就是使用“head”

例如,如果您想从 xts 中删除最后“n”行:

x1 <- x %>% head(-n)