考虑类似于:
的xts矩阵> x=xts(matrix(1:12, ncol=3), Sys.Date()+1:4 )
> x[1,]=NA
> x
[,1] [,2] [,3]
2014-01-15 NA NA NA
2014-01-16 2 6 10
2014-01-17 3 7 11
2014-01-18 4 8 12
要获得超出的元素,比如4:
> coredata(x)[x>4]
[1] NA NA 6 7 8 NA 10 11 12
没有NAs:
> coredata(x)[!is.na(x) & x >4]
[1] 6 7 8 10 11 12
NAs不选择x
中的元素,因此以下工作也不会使第一行无效:
> coredata(x)[x>4]=0
> x
[,1] [,2] [,3]
2014-01-15 NA NA NA
2014-01-16 2 0 0
2014-01-17 3 0 0
2014-01-18 4 0 0
问题是:当x
很大或者是否有更多xts特定方法时,这种子集化方法是否有效?
答案 0 :(得分:1)
您可以在子集化时尝试which=TRUE
参数
x = xts(matrix(1:12, ncol = 3), Sys.Date() + 1:4)
x[1, ] = NA
x[x > 4, which = T]
## [1] 6 7 8 10 11 12