【发布时间】:2011-12-08 21:21:46
【问题描述】:
假设我有一个包含两个因素的数据框,我想对按第二个类别分组的一个因素的水平进行排序。
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 中的同一级别,我如何对名称的级别进行相应的排序?
【问题讨论】:
-
我自己找到了一个答案,使用
interaction函数进行排序,但我不能再发布 8 小时。代码是levels(df.test$name)[with(df.test, interaction(name, category, drop=T))]。与此同时,还有其他巧妙的答案吗?