[R] which on array
Uwe Ligges
ligges at statistik.uni-dortmund.de
Fri Apr 2 13:39:37 CEST 2004
asemeria at cramont.it wrote:
>
>
>
> Good morning !
> Today I found a strange, for my poor knowledge of R, behaviour of
> 'which' on a matrix:
>
> HAL9000> str(cluster.matrix)
> num [1:227, 1:6300] 2 2 2 2 2 2 2 2 2 2 ...
>
> HAL9000> class(cluster.matrix)
> [1] "matrix"
>
> HAL9000> ase <- cluster.matrix[1:5,1:5]
>
> HAL9000> ase
> [,1] [,2] [,3] [,4] [,5]
> [1,] 2 2 2 0 -2
> [2,] 2 2 2 0 -2
> [3,] 2 2 2 0 -2
> [4,] 2 2 2 0 -2
> [5,] 2 2 2 0 -2
>
> HAL9000> ase2 <- matrix(c(2,2,2,2,2)%*%t(c(1,1,1,0,-1)),5,5)
>
> HAL9000> ase2
> [,1] [,2] [,3] [,4] [,5]
> [1,] 2 2 2 0 -2
> [2,] 2 2 2 0 -2
> [3,] 2 2 2 0 -2
> [4,] 2 2 2 0 -2
> [5,] 2 2 2 0 -2
>
> HAL9000> str(ase2)
> num [1:5, 1:5] 2 2 2 2 2 2 2 2 2 2 ...
>
> But now:
>
> HAL9000> which(ase2==-2,arr.ind=T)
> row col
> [1,] 1 5
> [2,] 2 5
> [3,] 3 5
> [4,] 4 5
> [5,] 5 5
>
> HAL9000> which(ase==-2,arr.ind=T)
> numeric(0)
>
> which(ase=="-2",arr.ind=T)
> row col
> [1,] 1 5
> [2,] 2 5
> [3,] 3 5
> [4,] 4 5
> [5,] 5 5
>
>
> May be the original matrix 'cluster.matrix' is not
> properly a numerical matrix!? But 'str' say num[...] !!??
> Some suggestion.
My guess is that cluster.matrix, hence ase, has been generated in some
calculation, and its numerical floating point representation is a bit
off the expected integer. Use identical(), all.equal() and friends to
analyse it.
Uwe Ligges
> Tks!
>
>
> A.S.
>
> ----------------------------
>
> Alessandro Semeria
> Models and Simulations Laboratory
> Montecatini Environmental Research Center (Edison Group),
> Via Ciro Menotti 48,
> 48023 Marina di Ravenna (RA), Italy
> Tel. +39 544 536811
> Fax. +39 544 538663
> E-mail: alessandro.semeria at cramont.it
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list