改變因子水平次序 relevel 函式

2021-09-24 19:51:10 字數 2242 閱讀 2115

你想要改變因子水平出現的次序。

r中有兩種不同型別的因子變數:有序和無序。比如和{鋼筆,橡皮擦,鉛筆}。對於絕大多數分析而言,乙個因子變數是有序還是無序的不重要。如果因子是有序的,那麼這個因子水平的特定次序是重要的(小《中《大)。如果因子是無序的,那麼因子水平同樣會以一定的順序出現,但這僅僅為了方便而已(鋼筆,橡皮擦,鉛筆) - 但有時它是重要的,例如它會覺得結果如何輸出,圖形元素如何展示。

一種改變因子次序的方式是對因子使用factor()函式並且直接指定它們的次序。下面這個例子中,ordered()函式可以替換factor()函式。

下面是這個例子的資料:

# 建立乙個錯誤次序的因子

sizes <- factor(c("small", "large", "large", "small", "medium"))

sizes

#> [1] small large large small medium

#> levels: large medium small

因子水平被顯式地指定:

sizes <- factor(sizes, levels = c("small", "medium", "large"))

sizes

#> [1] small large large small medium

#> levels: small medium large

我們同樣可以對有序因子這樣操作:

sizes <- ordered(c("small", "large", "large", "small", "medium"))

sizes <- ordered(sizes, levels = c("small", "medium", "large"))

sizes

#> [1] small large large small medium

#> levels: small < medium < large

另一種方式是使用relevel()函式在列表中製作乙個特定水平(這對有序因子不起作用)。

# 建立錯誤次序的因子

sizes <- factor(c("small", "large", "large", "small", "medium"))

sizes

#> [1] small large large small medium

#> levels: large medium small

# 使得 medium 排最前面

sizes <- relevel(sizes, "medium")

sizes

#> [1] small large large small medium

#> levels: medium large small

# 使得 small 排最前面

sizes <- relevel(sizes, "small")

sizes

#> [1] small large large small medium

#> levels: small medium large

當因子建立時,我們可以指定合適的順序。

sizes <- factor(c("small", "large", "large", "small", "medium"),

levels = c("small", "medium", "large"))

sizes

#> [1] small large large small medium

#> levels: small medium large

反轉因子水平次序。

# 建立錯誤次序的因子

sizes <- factor(c("small", "large", "large", "small", "medium"))

sizes

#> [1] small large large small medium

#> levels: large medium small

sizes <- factor(sizes, levels=rev(levels(sizes)))

sizes

#> [1] small large large small medium

#> levels: small medium large

三因子兩水平doe DOE試驗設計化繁為簡七步搞定

doe試驗設計的名氣很大,大到做質量,做生產,做開發的大多數朋友都聽說過。doe試驗設計又很難,難到很少有人完全說得清楚它。這麼神奇的doe試驗設計,今天教你doe試驗設計化繁為簡七步搞定。doe試驗設計 design of experiment,統稱 doe 是科研和處理多因子與初始化失敗自變數關...

改變水平線hr的顏色

在使用hr的時候很容易誤解為border就是水平線,改變border就能改變水平線的顏色,然而事實並不是這樣的,要想改變水平線的顏色,要從下面的i幾個屬性出發 border 設定為none或者0px height 給定乙個高度,在水平線中指的是水平線有多粗 width 給定乙個長度,即水平線大概有多...

改變水平線hr的顏色

在使用hr的時候很容易誤解為border就是水平線,改變border就能改變水平線的顏色,然而事實並不是這樣的,要想改變水平線的顏色,要從下面的i幾個屬性出發 border 設定為none或者0px height 給定乙個高度,在水平線中指的是水平線有多粗 width 給定乙個長度,即水平線大概有多...