我有一个名为test
的数据框:
structure(list(event_type = structure(c(5L, 6L, 8L, 3L, 9L, 1L,
7L, 4L, 10L, 2L), .Label = c("BLOCK", "CHL", "FAC", "GIVE", "GOAL",
"HIT", "MISS", "SHOT", "STOP", "TAKE"), class = "factor"), hazard_ratio = c(0.909615543020822,
1.3191464689192, 0.979677208703559, 1.02474605962247, 1.04722377755438,
1.07656116782136, 1.01186162453814, 1.06021078216577, 0.972520062522276,
0.915937088175971)), row.names = c(NA, -10L), class = "data.frame")
我想根据event_type
对hazard_ratio
进行重新排序,所以我尝试了一下。
test %>%
mutate(event_type = as.character(event_type),
event_type = fct_reorder(event_type, hazard_ratio))
答案 0 :(得分:2)
确保看起来这两种方法都会重新排序系统中的因素:
structure(list(event_type = structure(c(5L, 6L, 8L, 3L, 9L, 1L,
7L, 4L, 10L, 2L), .Label = c("BLOCK", "CHL", "FAC", "GIVE", "GOAL",
"HIT", "MISS", "SHOT", "STOP", "TAKE"), class = "factor"), hazard_ratio = c(0.909615543020822,
1.3191464689192, 0.979677208703559, 1.02474605962247, 1.04722377755438,
1.07656116782136, 1.01186162453814, 1.06021078216577, 0.972520062522276,
0.915937088175971)), row.names = c(NA, -10L), class = "data.frame") -> test
我们将使用ggplot2
进行验证,因为它使用factor
s来订购轴事物。
ggplot(test, aes(hazard_ratio, event_type)) +
geom_segment(aes(xend=0, yend=event_type))
mutate(test, event_type = reorder(event_type, hazard_ratio)) %>%
ggplot(aes(hazard_ratio, event_type)) +
geom_segment(aes(xend=0, yend=event_type))
forcats
mutate(test, event_type = fct_reorder(event_type, hazard_ratio, .fun = identity)) %>%
ggplot(aes(hazard_ratio, event_type)) +
geom_segment(aes(xend=0, yend=event_type))