當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。