gpt4 book ai didi

r - 为什么有序向量并不总是根据 R 中的 "is.ordered"排序?

转载 作者:行者123 更新时间:2023-12-02 07:31:24 25 4
gpt4 key购买 nike

我想这与水平和因素有关,但我不确定到底发生了什么:

test <- c(1,4,2,3,7,9,8)
testOrdered <- test[order(test)]
is.ordered(testOrdered)
is.ordered(rev(testOrdered))

两次,该函数都返回 FALSE,即没有一个向量是有序的。起初,我希望该函数能够测试给定向量是否按“顺序”(即“已排序”)的意义排序。回到 is.sorted 的定义之后,我假设 is.ordered 询问给定向量是否按其级别的顺序排序。矢量测试(据我了解)不应该有任何级别,对吗?所以,我猜“false”或多或少是正确的答案(但 NaN 会更好吗?)。任何人都可以 a) 帮助我了解 is.ordered 的真正作用以及何时为真以及 b) 如何测试数值向量是否已排序/排序?

最佳答案

在 R 中存在两种类型的因子:无序有序。在您的情况下,您有一个简单的数字向量,而不是一个因素。因此,函数 is.ordered如上所述不适用。

无序因素通常被称为分类数据,它没有自然顺序。要在 R 中表示这一点,您可以使用无序因子:

f <- factor(c(1,3,2,1,3))
f
[1] 1 3 2 1 3
Levels: 1 2 3

is.ordered(f)
[1] FALSE

如果因子具有自然排序,通常称为有序有序分类数据,您可以在 R 中使用有序因子定义它.注意 <登录有序因子的水平。

f <- factor(c(1,3,2,1,3), ordered=TRUE)
f
[1] 1 3 2 1 3
Levels: 1 < 2 < 3

is.ordered(f)
[1] TRUE

所以,is.ordered将区分这两类因素。

关于r - 为什么有序向量并不总是根据 R 中的 "is.ordered"排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21366751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com