对数据框中的分类变量进行排序

判断

如何更改数据框中显示因子的顺序?

使用澳大利亚州名样本的示例数据:

location <- c("new_south_wales", "victoria", "queensland")

说我想victoria最后出现!

#this doesn't work
factor(location, levels = c("new_south_wales", "queensland", "victoria")

#neither does this
ordered(location, levels = c("new_south_wales", "queensland", "victoria")

也尝试过,forcats::fct_relevel但是,虽然我可以更改级别,但它仍然不会影响因子显示的顺序。

再次

如果您希望按字母数字顺序对实际因子进行排序,则可以按这种方式对其进行排序。

location <- c("new_south_wales", "victoria", "queensland")
factor(sort(location))
# [1] new_south_wales queensland      victoria       
# Levels: new_south_wales queensland victoria

当然,您可以在创建之前或之后执行此操作。

states <- factor(location)
states
# [1] new_south_wales victoria        queensland     
# Levels: new_south_wales queensland victoria

sort(states)
# [1] new_south_wales queensland      victoria       
# Levels: new_south_wales queensland victoria

ordered_states <- sort(states)
ordered_states
# [1] new_south_wales queensland      victoria       
# Levels: new_south_wales queensland victoria

您还可以按其他顺序订购它们:

states <- factor(location[c(3, 2, 1])
states
# [1] queensland      victoria        new_south_wales
# Levels: new_south_wales queensland victoria

# Or after the fact:
states <- factor(states[c(3, 1, 2])
states
# [1] victoria        queensland      new_south_wales
# Levels: new_south_wales queensland victoria
# Notice that this reorders the reordered states, because that's how
# states was last assigned.

默认情况下,级别按字母数字排序,但这对因子中值的实际顺序没有影响(如您所演示的)。

正如您还演示的,有序因子不一定按顺序显示。那只是意味着这些值是有序的

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章