fct_reorder()
对于将因子映射到位置的 1d 显示很有用; fct_reorder2()
用于 2d 显示器,其中该因子映射到非位置美学。 last2()
和 first2()
是 fct_reorder2()
的助手; last2()
查找按 x
排序后 y
的最后一个值; first2()
找到第一个值。
用法
fct_reorder(
.f,
.x,
.fun = median,
...,
.na_rm = NULL,
.default = Inf,
.desc = FALSE
)
fct_reorder2(
.f,
.x,
.y,
.fun = last2,
...,
.na_rm = NULL,
.default = -Inf,
.desc = TRUE
)
last2(.x, .y)
first2(.x, .y)
参数
- .f
-
因子(或字符向量)。
- .x, .y
-
f
的级别重新排序,以便.fun(.x)
(对于fct_reorder()
)和fun(.x, .y)
(对于fct_reorder2()
)的值按升序排列。 - .fun
-
n 汇总函数。它应该采用一个向量表示
fct_reorder
,采用两个向量表示fct_reorder2
,并返回一个值。 - ...
-
其他参数传递给
.fun
。 - .na_rm
-
fct_reorder()
应该删除缺失值吗?如果NULL
(默认值)将删除缺失值并发出警告。设置为FALSE
以保留NA
(如果您.fun
已处理它们)并设置为TRUE
以静默删除。 - .default
-
对于空级别,我们应该为
.fun
使用什么默认值?使用它来控制输出中出现空级别的位置。 - .desc
-
按降序排列?请注意,
fct_reorder
和fct_reorder2
之间的默认值不同,以便匹配图例中因子的默认顺序。
例子
# fct_reorder() -------------------------------------------------------------
# Useful when a categorical variable is mapped to position
boxplot(Sepal.Width ~ Species, data = iris)
boxplot(Sepal.Width ~ fct_reorder(Species, Sepal.Width), data = iris)
# or with
library(ggplot2)
ggplot(iris, aes(fct_reorder(Species, Sepal.Width), Sepal.Width)) +
geom_boxplot()
# fct_reorder2() -------------------------------------------------------------
# Useful when a categorical variable is mapped to color, size, shape etc
chks <- subset(ChickWeight, as.integer(Chick) < 10)
chks <- transform(chks, Chick = fct_shuffle(Chick))
# Without reordering it's hard to match line to legend
ggplot(chks, aes(Time, weight, colour = Chick)) +
geom_point() +
geom_line()
# With reordering it's much easier
ggplot(chks, aes(Time, weight, colour = fct_reorder2(Chick, Time, weight))) +
geom_point() +
geom_line() +
labs(colour = "Chick")
相关用法
- R forcats fct_relevel 手动重新排序因子级别
- R forcats fct_rev 因子水平的倒序
- R forcats fct_relabel 使用函数重新标记因子水平,并根据需要折叠
- R forcats fct_recode 手动更改因子水平
- R forcats fct_anon 匿名因子水平
- R forcats fct_inorder 按首次出现、频率或数字顺序对因子水平重新排序
- R forcats fct_match 测试因子中是否存在水平
- R forcats fct_drop 删除未使用的级别
- R forcats fct_c 连接因子,组合级别
- R forcats fct_collapse 将因子级别折叠为手动定义的组
- R forcats fct_shuffle 随机排列因子水平
- R forcats fct_cross 组合两个或多个因子的水平以创建新因子
- R forcats fct_other 手动将级别替换为“其他”
- R forcats fct_na_value_to_level NA 值和 NA 水平之间的转换
- R forcats fct_lump 将不常见因子集中到“其他”级别
- R forcats fct_unique 一个因子的唯一值,作为一个因子
- R forcats fct_shift 将因子水平向左或向右移动,在末尾环绕
- R forcats fct_unify 统一因子列表中的水平
- R forcats fct_count 计算因子中的条目数
- R forcats fct_expand 向因子添加附加级别
- R forcats fct 创建一个因子
- R forcats as_factor 将输入转换为因子
- R forcats lvls_union 查找因子列表中的所有级别
- R forcats lvls 用于操纵级别的低级函数
- R forcats gss_cat 一般社会调查中的分类变量样本
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Reorder factor levels by sorting along another variable。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。