如何在R中使用dplyr包將數值列轉換為因子?


如果我們在R資料框中有一個數值列,並且該列中唯一值的個數很少,這意味著該數值列可以被視為一個因子。因此,我們可以將數值列轉換為因子。要使用dplyr包執行此操作,我們可以使用dplyr包的mutate_if函式。

載入dplyr包並將BOD資料集(在基礎R中可用)中的數值列轉換為因子列:

示例

library(dplyr)
str(BOD)
'data.frame': 6 obs. of 2 variables:
$ Time : num 1 2 3 4 5 7
$ demand: num 8.3 10.3 19 16 15.6 19.8
- attr(*, "reference")= chr "A1.4, p. 270"
BOD%>%mutate_if(is.numeric,as.factor)

輸出

  Time demand
1  1   8.3
2  2   10.3
3  3   19
4  4   16
5  5   15.6
6  7   19.8

將甲醛資料集(在基礎R中可用)中的數值列轉換為因子列:

示例

str(Formaldehyde)
'data.frame': 6 obs. of 2 variables:
$ carb : num 0.1 0.3 0.5 0.6 0.7 0.9
$ optden: num 0.086 0.269 0.446 0.538 0.626 0.782
Formaldehyde%>%mutate_if(is.numeric,as.factor)

輸出

   carb  optden
1  0.1   0.086
2  0.3   0.269
3  0.5   0.446
4  0.6   0.538
5  0.7   0.626
6  0.9   0.782

將InsectSprays資料集(在基礎R中可用)中的數值列轉換為因子列:

示例

str(InsectSprays)
'data.frame': 72 obs. of 2 variables:
$ count: num 10 7 20 14 14 12 10 23 17 20 ...
$ spray: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...
InsectSprays%>%mutate_if(is.numeric,as.factor)

輸出

   count spray
1  10    A
2  7     A
3  20    A
4  14    A
5  14    A
6  12    A
7  10    A
8  23    A
9  17    A
10 20    A
11 14    A
12 13    A
13 11    B
14 17    B
15 21    B
16 11    B
17 16    B
18 14    B
19 17    B
20 17    B
21 19    B
22 21    B
23 7     B
24 13    B
25 0     C
26 1     C
27 7     C
28 2     C
29 3     C
30 1     C
31 2     C
32 1     C
33 3     C
34 0     C
35 1     C
36 4     C
37 3     D
38 5     D
39 12    D
40 6     D
41 4     D
42 3     D
43 5     D
44 5     D
45 5     D
46 5     D
47 2     D
48 4     D
49 3     E
50 5     E
51 3     E
52 5     E
53 3     E
54 6     E
55 1     E
56 1     E
57 3     E
58 2     E
59 6     E
60 4     E
61 11    F
62 9     F
63 15    F
64 22    F
65 15    F
66 16    F
67 13    F
68 10    F
69 26    F
70 26    F
71 24    F
72 13    F

更新於:2021年2月11日

4K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.