有人可以解释R中“有序”参数的用途是什么?
R说:有序
逻辑标志,用于确定是否应将级别视为有序(按给定顺序)。
因此,如果我有一个名为names的因子并且设置了ordered = TRUE
names<- factor(c("fred","bob","john"), ordered = TRUE)
names
为什么打印出来:
[1] fred bob john
Levels: bob < fred < john
这似乎没有使用我给它的顺序。我开始用fred从Bob开始?
此外,有序参数的使用方式与使用“等级”参数的方式不同,这些参数将对因子进行排序:
names<- factor(c("fred","bob","john"), levels= c("john","fred","bob"))
names
返回
[1] fred bob john
Levels: john fred bob
这似乎跟着我的订购。那么为什么我需要“有序”参数?
我对如何使用“有序”和“等级”感到困惑。
答案 0 :(得分:5)
让我们做一些阅读。
来自?factor
:
级别 x可能采用的值的可选向量。该 default是as.character(x)采用的唯一值集,已排序 增加x的顺序。请注意,此集可以指定为 小于排序(唯一(x))。
因此,如果未指定,它将为您排序唯一值并将其视为订单。
正如Ben所提到的,有序和无序因素在实践中有何不同的问题要复杂得多,而且通常依赖于您知道合理数量的统计数据的假设。文档只说:
有序因素仅与其类别中的因素不同,而是方法 模型拟合函数完全对待这两个类 不同。
同样,正如Ben所提到的,许多模型拟合程序将非常不同地处理有序和无序因素,因为它们具有非常不同的统计含义和解释。统计差异的详细摘要可能超出了StackOverflow答案的范围。
答案 1 :(得分:4)
我觉得这可以使用更为开发的答案。
我会用更直观的因素替换你的名字矢量,以便更有意义:
heights <- c("low","medium","high")
heights1 <- factor(heights, ordered = TRUE)
heights1
# [1] low medium high
# Levels: high < low < medium
heights2 <- factor(heights) # ordered = FALSE by default
heights2
# [1] low medium high
# Levels: high low medium
级别的顺序可能不是您期望的顺序,但是当您未设置显式订单时,会按字母顺序排序。
要设置明确的顺序,我们可以执行以下操作:
heights1<- factor(heights, levels = heights, ordered = TRUE)
heights1
# [1] low medium high
# Levels: low < medium < high
heights2<- factor(heights, levels = heights)
heights2
# [1] low medium high
# Levels: low medium high
您有时可能希望使用factor(x, levels = unique(x))
,因为级别无法复制,在这种情况下,级别将按其首次出现进行排序。
所以现在它在双方排序,但等待,一个应该是“无序的”。
词汇表具有误导性,因为排序无序因素是可能的,例如,如果你想用ggplot2
调整你的布局,它甚至会很有用。
然而,正如@joran和@thomas所提到的,统计模型会根据它们是否有序而不同地考虑分类变量。
使用导致我在这里的有序因素是使用max
和min
函数,特别是在聚合函数内部。
请参阅此问题和已接受的答案,其中必须将因子定义为有序:Aggregate with max and factors
我们有这个:
# > df1
# id height
# 1 1 low
# 2 1 high
# 3 2 medium
# 4 2 low
# 5 3 medium
# 6 3 medium
# 7 4 low
# 8 4 low
# 9 5 medium
# 10 5 medium
由于无序因素,我们无法聚合:
# aggregate(height ~ id,df1,max)
# Error in Summary.factor(c(2L, 2L), na.rm = FALSE) :
# ‘max’ not meaningful for factors
我们可以使用有序因子!
# aggregate(height ~ id,df1,max)
# id height
# 1 1 high
# 2 2 medium
# 3 3 medium
# 4 4 low
# 5 5 medium