重新排序数据框中的因子水平[重复]

Posted

技术标签:

【中文标题】重新排序数据框中的因子水平[重复]【英文标题】:Re-ordering factor levels in data frame [duplicate] 【发布时间】:2022-01-10 18:33:46 【问题描述】:

我有一个data.frame,如下图:

task    measure
right   m1
left    m2
up      m3
down    m4
front   m5
back    m6
.
.
.

任务栏只取6个不同的值,作为因子,按R排序为:“后”、“下”、“前”、“左”、“右”、“上”。

但是,我需要它们按以下顺序排列:“上”、“下”、“左”、“右”、“前”、“后”。这样,当我在 ggplot 中使用这些数据时,相关的任务(例如“up”和“down”)会彼此相邻绘制。

如何改变因子“任务”的级别顺序?

【问题讨论】:

levels(x) <- value 语法(参见?levels)。是这个意思吗? 【参考方案1】:

假设你的数据框是 mydf:

mydf$task <- factor(mydf$task, levels = c("up", "down", "left", "right", "front", "back"))

【讨论】:

谢谢。我还发现,仅出于使用 ggplot2 更改绘图顺序的目的,您可以使用函数 scale_x_discrete 并将 limits 参数设置为 x 轴中因子所需的适当顺序。 也可以试试mydf$task &lt;- ordered(mydf$task levels =c("up", "down", "left", "right", "front", "back") 谢谢,也遇到了同样的问题,我通过另一个anwser知道这与此有关,但是玩因素对我来说总是很复杂,我不知道为什么 @HanniBaL90:相信我,你并不是唯一一个发现一些复杂因素的人。我花了很多时间试图将因素纳入我需要的形式。但因素问题似乎相当普遍......

以上是关于重新排序数据框中的因子水平[重复]的主要内容,如果未能解决你的问题,请参考以下文章

根据列名重新排序熊猫数据框中的列[重复]

根据列名重新排序熊猫数据框中的列[重复]

根据列名重新排序熊猫数据框中的列[重复]

根据列名重新排序熊猫数据框中的列[重复]

在不更改值顺序的情况下重新排序因子的级别

pandas 重新排序分组数据框中的列子集