我希望在一个分组列内重新排列一个因子变量的水平。
以下是一个简单的数据集示例:
df <- structure(list(a_factor = structure(1:6, .Label = c("a", "b",
"c", "d", "e", "f"), class = "factor"), group = structure(c(1L,
1L, 1L, 2L, 2L, 2L), .Label = c("group1", "group2"), class = "factor"),
value = 1:6), class = "data.frame", row.names = c(NA, -6L
))
> df
a_factor group value
1 a group1 1
2 b group1 2
3 c group1 3
4 d group2 4
5 e group2 5
6 f group2 6
更精确地说,我如何重新排序因子水平,例如按
value
降序排列,其中df$group == "group1"
,但按value
升序排列,其中df$group == "group2"
,最好使用dplyr?预期输出可能是:
> df
a_factor group value
1 c group1 3
2 b group1 2
3 a group1 1
4 d group2 4
5 e group2 5
6 f group2 6
虽然问题更一般地涉及如何在dplyr中解决这个问题。
df %>% arrange(group, desc(value))
吗? - akrun