我想确定一个向量是否总是在R中增加或总是在R中减少.
理想情况下,如果我有这三个向量:
asc=c(1,2,3,4,5)
des=c(5,4,3,2,1)
non=c(1,3,5,4,2)
Run Code Online (Sandbox Code Playgroud)
我希望前两个返回TRUE,最后一个返回FALSE.
我尝试了几种方法.首先,我试过:
> is.ordered(asc)
[1] FALSE
> is.ordered(des)
[1] FALSE
> is.ordered(non)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
> order(non)
[1] 1 5 2 4 3
Run Code Online (Sandbox Code Playgroud)
并希望我可以简单地将此向量与1,2,3,4,5和比较5,4,3,2,1,但即使返回一串逻辑,而不是单个true或false:
> order(non)==c(1,2,3,4,5)
[1] TRUE FALSE FALSE TRUE FALSE
Run Code Online (Sandbox Code Playgroud)
Jil*_*ina 14
也许is.unsorted是你想要的功能
> is.unsorted(asc)
[1] FALSE
> is.unsorted(rev(des)) # here you need 'rev'
[1] FALSE
> is.unsorted(non)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
从描述中is.unsorted你可以找到:
测试对象是否未按顺序排序(按升序排列),无需对其进行排序.
这是使用的一种方式?is.unsorted:
is.sorted <- function(x, ...) {
!is.unsorted(x, ...) | !is.unsorted(rev(x), ...)
}
Run Code Online (Sandbox Code Playgroud)
看看附加的参数is.unsorted,也可以在这里传递.