0

我有一个向量 v3,它看起来像这样:

v3 <- matrix(c(1,1,3,3,2,2,
               2,3,1,2,3,1,
               3,2,2,1,1,3), ncol = 3)

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1    3    2
[3,]    3    1    2
[4,]    3    2    1
[5,]    2    3    1
[6,]    2    1    3

我想检查行是升序还是降序。我试过这个: v3[row(v3)[,1],]==(c(1,2,3)||c(3,2,1)) 但它产生了:

      [,1]  [,2]  [,3]
[1,]  TRUE FALSE FALSE
[2,]  TRUE FALSE FALSE
[3,] FALSE  TRUE FALSE
[4,] FALSE FALSE  TRUE
[5,] FALSE FALSE  TRUE
[6,] FALSE  TRUE FALSE

代替

      [,1]  [,2]  [,3]
[1,]  TRUE TRUE   TRUE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE
[4,]  TRUE  TRUE  TRUE
[5,] FALSE FALSE FALSE
[6,] FALSE FALSE FALSE

我怎样才能做到这一点?

4

1 回答 1

4

这是一种方法:

adtest <- function(v) rep((all(diff(v)>0)) | all(diff(v) < 0), length(v))
t(apply(v3, 1, adtest))

      [,1]  [,2]  [,3]
[1,]  TRUE  TRUE  TRUE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE
[4,]  TRUE  TRUE  TRUE
[5,] FALSE FALSE FALSE
[6,] FALSE FALSE FALSE
于 2012-04-07T03:48:48.047 回答