r - 如何根据另一个类别对因子水平进行排序?

标签 r dataframe

假设我有一个包含两个因素的数据框,我想对按第二类分组的一个因素的水平进行排序。

name <- letters[1:8]
category <- factor(sample(1:2, 8, replace=T), labels=c("A", "B"))
my.df <- data.frame(name=name, category=category)

因此数据框看起来类似于:

  name category
1    a        A
2    b        A
3    c        B
4    d        B
5    e        B
6    f        A
7    g        A
8    h        A

levels(my.df$name) 的输出是:

[1] "a" "b" "c" "d" "e" "f" "g" "h"

假设 name 中的级别始终对应于我数据中 category 中的相同级别,我如何相应地对 name 级别进行排序?

最佳答案

这是你想要的吗?

> levels(my.df$name) <- as.character(unique(my.df[order(my.df$category),]$name))
> levels(my.df$name)
[1] "b" "c" "e" "f" "a" "d" "g" "h"

关于r - 如何根据另一个类别对因子水平进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787235/

相关文章:

r - 如何在 R 中将列名称的编码更改为 utf 8

python - 各个月份的列值总和

python - 比较两个 DataFrame 并并排输出它们的差异

r - 用图案填充地理空间多边形 - R

r - 为什么 R 在这个表达式结果的开头产生一个额外的空格?

在 R 中排名与关系

r - 不在较小的字符向量列表中而是在大列表中查找元素

r - 将列表中的 data.frames 堆叠到单个 data.frame 中,将名称(列表)保留为额外的列

python - 检查一对值是否在 Pandas 的一对列中

python - 如果值是字符串,Pandas DataFrame 会执行某些操作