我有一些数字变量和factor个分类变量的数据框架.这些因素的等级顺序不是我想要的.

numbers <- 1:4
letters <- factor(c("a", "b", "c", "d"))
df <- data.frame(numbers, letters)
df
#   numbers letters
# 1       1       a
# 2       2       b
# 3       3       c
# 4       4       d

如果我改变等级的顺序,字母就不再有相应的数字(从现在起,我的数据完全是胡说八道).

levels(df$letters) <- c("d", "c", "b", "a")
df
#   numbers letters
# 1       1       d
# 2       2       c
# 3       3       b
# 4       4       a

我只想更改level的顺序,所以在打印时,条形图以所需的顺序显示——这可能不同于默认的字母顺序.

推荐答案

使用factorlevels参数:

df <- data.frame(f = 1:4, g = letters[1:4])
df
#   f g
# 1 1 a
# 2 2 b
# 3 3 c
# 4 4 d

levels(df$g)
# [1] "a" "b" "c" "d"

df$g <- factor(df$g, levels = letters[4:1])
# levels(df$g)
# [1] "d" "c" "b" "a"

df
#   f g
# 1 1 a
# 2 2 b
# 3 3 c
# 4 4 d

R相关问答推荐

用一个区分列连接两个数据帧的单行器?

我可以根据使用 mutate() 和 cross() 的许多其他列来改变许多列吗?

如何为r中的每个ID创建一个新列,其中包含第一个日期的年份

从 CI 输出制作表格

R滚动添加或删除计数到列表

R Shiny:滑块锚在末端重叠

如何在 r 中为转换后的变量创建汇总统计表

将行拆分为两行

当新列名作为字符向量给出时,在“data.table”中对数据进行分组的好方法

列出到 knitr 环境(在 R 块中使用 list2env 时出现 R-markdown 错误)

根据问题逻辑显示真实的未知数

如何根据 R 中的类别计算列中值的数量?

在R中递归添加一列

在R中,在数字字符串的正确位置添加逗号

如何在 r 中建立不对称相关性?

Ubuntu 22.04 中 R impish repo 的问题 - impish-cran40

如何在 R 中对“配对”向量进行排序

如何让我的数据正确呈现?

new.session() 中的错误:5 次try 后无法建立会话

如何在 R 中设置错误消息的宽度?