[R] Re problem with "any" function

Rui Barradas ruipbarradas at sapo.pt
Sat Nov 17 20:42:10 CET 2012


Hello,

Why don't you keep it on the list? I'm Ccing R Help.
If you put print statements just before the any(),

print(ind.c)
print(ind.r)
print(ind.sgn)


you'll see that all values are FALSE. So the problem is _not_ with 
any(). You must look somewhere else on the function.


Hope this helps,

Rui Barradas
Em 17-11-2012 19:18, Haris Rhrlp escreveu:
> i have this matrices
> a<-matrix(c(1,1,1,1,-1,-1,-1,-1,-1,1,1,1),ncol=4,byrow=T)
> a1<-matrix(c(-1,-1,-1,-1,1,1,1,1,-1,1,1,1),ncol=4,byrow=T)
> a2<-matrix(c(1,1,1,1,-1,-1,-1,-1,1,1,1,1),ncol=4,byrow=T)
> a3<-matrix(c(1,1,1,1,-1,-1,-1,-1,1,1,1,-1),ncol=4,byrow=T)
> a4<-matrix(c(1,1,1,-1,-1,-1,-1,1,-1,1,1,-1),ncol=4,byrow=T)
> a5<-matrix(c(1,1,1,-1,-1,-1,-1,1,1,-1,1,-1),ncol=4,byrow=T)
> a6<-matrix(c(1,1,1,1,-1,-1,-1,-1,1,-1,1,1),ncol=4,byrow=T)
> a7<-matrix(c(1,1,-1,-1,-1,-1,1,1,-1,1,-1,-1),ncol=4,byrow=T)
>
> and this programme
>
> isomorphic1 <- function (m1, m2) {
>      combs.c <- combn(ncol(m1), 2)
>      nc <- ncol(combs.c)
>      ind.c <- vector("logical", nc)
>      for (i in 1:nc) {
>          m <- m1
>          m[, combs.c[, i]] <- m[, rev(combs.c[, i])]
>          ind.c[i] <- all(m == m2)
>      }
>      combs.r <- combn(nrow(m1), 2)
>      nr <- ncol(combs.r)
>      ind.r <- vector("logical", nr)
>      for (i in 1:nr) {
>          m <- m1
>          m[combs.r[, i], ] <- m[rev(combs.r[, i]), ]
>          ind.r[i] <- all(m == m2)
>      }
>      ind.sgn <- lapply(1:ncol(m1), combn, x = ncol(m1))
>      ind.sgn <- unlist(lapply(ind.sgn, function (ind) {
>          ncc <- ncol(ind)
>          out <- vector("logical", ncc)
>          for (l in 1:ncc) {
>              m <- m1
>              m[, ind[, l]] <- -m[, ind[, l]]
>              out[l] <- all(m == m2)
>          }
>          out
>      }))
>      any(ind.c, ind.r, ind.sgn)
> }
>
>
> in the above matrices only a2 is trully false
> all the others must be true
>
> it cant check simultaneously the ind.c, ind.r ind.sgn
> as a5 has ind.c and ind.sgn simultaneously TRUE
> ind.c & ind.sgn are  False & false



More information about the R-help mailing list