我有一个矢量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
我该怎么做?
答案 0 :(得分: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