当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R forcats fct_reorder 通过沿另一个变量排序来重新排序因子水平


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_reorderfct_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/reorder.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Reorder factor levels by sorting along another variable。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。