'Compare' operations on NaArray objects
NaArray-Compare-methods.Rd
EXPERIMENTAL!!!
NaArray objects support all operations from the Compare
group.
See ?S4groupGeneric
in the methods package
for more information about the Compare
group generic.
Details
Three forms of 'Compare' operations involving NaArray objects are supported:
Between an NaArray object
naa
and a single valuey
:naa op y y op naa
Between two NaArray objects
naa1
andnaa2
of same dimensions (a.k.a. conformable arrays):naa1 op naa2
Between an NaArray object
naa
and an SVT_SparseArray objectsvt
of same dimensions (a.k.a. conformable arrays):naa op svt svt op naa
Value
An NaArray object of type()
"logical"
and same
dimensions as the input object(s).
See also
S4groupGeneric
in the methods package.NaArray objects.
SVT_SparseArray objects.
Ordinary array objects in base R.
Examples
nam1 <- NaArray(dim=c(15, 6), type="double")
nam1[c(2, 6, 12:17, 22:33, 55, 59:62, 90)] <- runif(26)
nam1
#> <15 x 6 NaMatrix> of type "double" [nnacount=26 (29%)]:
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] NA 0.10399823 0.03408173 NA 0.08276945 NA
#> [2,] 0.03000375 0.96320620 0.74878915 NA 0.68174249 NA
#> [3,] NA NA 0.91918598 NA NA NA
#> [4,] NA NA NA NA NA NA
#> [5,] NA NA NA NA NA NA
#> ... . . . . . .
#> [11,] NA 0.4882011 NA NA NA NA
#> [12,] 0.3118320 0.4212521 NA NA NA NA
#> [13,] 0.4863615 0.2293495 NA NA NA NA
#> [14,] 0.9448024 0.7620652 NA 0.6785628 NA NA
#> [15,] 0.2926374 0.2642333 NA 0.7569872 NA 0.1812089
nam1 >= 0.2
#> <15 x 6 NaMatrix> of type "logical" [nnacount=26 (29%)]:
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] NA FALSE FALSE NA FALSE NA
#> [2,] FALSE TRUE TRUE NA TRUE NA
#> [3,] NA NA TRUE NA NA NA
#> [4,] NA NA NA NA NA NA
#> [5,] NA NA NA NA NA NA
#> ... . . . . . .
#> [11,] NA TRUE NA NA NA NA
#> [12,] TRUE TRUE NA NA NA NA
#> [13,] TRUE TRUE NA NA NA NA
#> [14,] TRUE TRUE NA TRUE NA NA
#> [15,] TRUE TRUE NA TRUE NA FALSE
nam1 != 0
#> <15 x 6 NaMatrix> of type "logical" [nnacount=26 (29%)]:
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] NA TRUE TRUE NA TRUE NA
#> [2,] TRUE TRUE TRUE NA TRUE NA
#> [3,] NA NA TRUE NA NA NA
#> [4,] NA NA NA NA NA NA
#> [5,] NA NA NA NA NA NA
#> ... . . . . . .
#> [11,] NA TRUE NA NA NA NA
#> [12,] TRUE TRUE NA NA NA NA
#> [13,] TRUE TRUE NA NA NA NA
#> [14,] TRUE TRUE NA TRUE NA NA
#> [15,] TRUE TRUE NA TRUE NA TRUE
nam2 <- NaArray(dim=dim(nam1), type="integer")
nam2[cbind(1:15, 2)] <- 100:114
nam2[cbind(1:15, 5)] <- -(114:100)
nam2
#> <15 x 6 NaMatrix> of type "integer" [nnacount=30 (33%)]:
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] NA 100 NA NA -114 NA
#> [2,] NA 101 NA NA -113 NA
#> [3,] NA 102 NA NA -112 NA
#> [4,] NA 103 NA NA -111 NA
#> [5,] NA 104 NA NA -110 NA
#> ... . . . . . .
#> [11,] NA 110 NA NA -104 NA
#> [12,] NA 111 NA NA -103 NA
#> [13,] NA 112 NA NA -102 NA
#> [14,] NA 113 NA NA -101 NA
#> [15,] NA 114 NA NA -100 NA
nam1 < nam2
#> <15 x 6 NaMatrix> of type "logical" [nnacount=13 (14%)]:
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] NA TRUE NA NA FALSE NA
#> [2,] NA TRUE NA NA FALSE NA
#> [3,] NA NA NA NA NA NA
#> [4,] NA NA NA NA NA NA
#> [5,] NA NA NA NA NA NA
#> ... . . . . . .
#> [11,] NA TRUE NA NA NA NA
#> [12,] NA TRUE NA NA NA NA
#> [13,] NA TRUE NA NA NA NA
#> [14,] NA TRUE NA NA NA NA
#> [15,] NA TRUE NA NA NA NA
## Sanity checks:
m1 <- as.matrix(nam1)
m2 <- as.matrix(nam2)
stopifnot(
identical(as.matrix(nam1 >= 0.2), m1 >= 0.2),
identical(as.matrix(nam1 != 0), m1 != 0),
identical(as.matrix(nam1 < nam2), m1 < m2)
)