搜尋感興趣的網誌

所有文章連結

2022年3月30日 星期三

R Packages forcats - fct_reorder | R包forcats - fct_reorder

 


fct_reorder的作用是通過另一個變量的值對應所需要重新排的變量值,解釋起來有點怪,我們還是透過實際例子進行


基本語法

fct_reorder(dataset$var, dataset$var, desc)


可用參數

desc : 預設為TRUE,要變更排序方式填入desc即可


建立一個數據框,包含數字與文字

factor_df <- tibble(
    number = c(10, 100, 50, 90, 20),
    float = c(1.1, 55.2, 35.1, 3.9, 120.5),
    animal = c("dog", "cat", "rat", "fish", "lion")
)

# 輸出結果
r$> factor_df # A tibble: 5 x 3 number float animal <dbl> <dbl> <chr> 1 10 1.1 dog 2 100 55.2 cat 3 50 35.1 rat 4 90 3.9 fish 5 20 120. lion


將animal欄位變更為因子

# 變更為因子
factor_df$animal <- as.factor(factor_df$animal)

# 輸出結果
r$> str(factor_df$animal) Factor w/ 5 levels "cat","dog","fish",..: 2 1 5 3 4


透過number欄位的值對animal欄位的順序做調整,依照number欄位的值10 < 20 < 50 < 90 < 100做排序

# 取number的值對animal做排序
fct_reorder(factor_df$animal, factor_df$number)

# 輸出結果
r$> fct_reorder(factor_df$animal, factor_df$number) [1] dog cat rat fish lion Levels: dog lion rat fish cat


加入desc重新排列

# 取number的值對animal做desc排序
fct_reorder(factor_df$animal, factor_df$number, desc)

# 輸出結果
r$> fct_reorder(factor_df$animal, factor_df$number, desc) [1] dog cat rat fish lion Levels: cat fish rat lion dog


不一定只能操作字符,也可以將number欄位變更為因子

# 將number欄位變更為因子
factor_df$number <- as.factor(factor_df$number)

# 輸出結果
r$> str(factor_df$number) Factor w/ 5 levels "10","20","50",..: 1 5 3 4 2


透過float欄位的值對number欄位進行排序

# 取float的值對number做排序
fct_reorder(factor_df$number, factor_df$float)

# 輸出結果
r$> fct_reorder(factor_df$number, factor_df$float) [1] 10 100 50 90 20 Levels: 10 90 50 100 20

沒有留言:

張貼留言

其他文章

看看精選文章

納希克房價分析 | Nashik Apartment Price Analyze – 語法解析(上)

  這次 Nashik 的房價分析有上傳至 Kaggle ,有興趣的朋友可以前往閱覽, RMarkdown PDF 報告存放在 Google 雲端,程式碼則是存放於 Github ,照慣例會分享好用的函式語法,雖說基本的 Packages 與語法可能很多人都會完整的閱覽,但是實際...