在R資料框中基於條件將數值列轉換為二進位制因子


為了在R資料框中基於條件將數值列轉換為二進位制因子,我們可以結合使用factor函式和ifelse函式。

例如,如果我們有一個名為df的資料框,其中包含一個數值列,例如Num,並且我們想將其轉換為二進位制因子(如果Num小於100則為Minor,否則為Major),那麼我們可以使用以下命令:

df$Num_Factor<-factor(ifelse(df$Num_Factor<100,"Minor","Major"))

示例1

以下程式碼片段建立了一個示例資料框:

x<-sample(1:50,20)
df1<-data.frame(x)
df1

建立了以下資料框:

   x
 1 4
 2 13
 3 50
 4 19
 5 43
 6 42
 7 18
 8 17
 9 27
10 23
11 31
12 37
13 5
14 28
15 1
16 6
17 30
18 35
19 22
20 10

要在上面建立的資料框中將x轉換為因子列,請將以下程式碼新增到上面的程式碼片段中:

x<-sample(1:50,20)
df1<-data.frame(x)
df1$x_Factor<-factor(ifelse(df1$x<25,"Low","High"))
df1

輸出

如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:

    x x_Factor
 1  4  Low
 2 13 Low
 3 50 High
 4 19 Low
 5 43 High
 6 42 High
 7 18 Low
 8 17 Low
 9 27 High
10 23 Low
11 31 High
12 37 High
13 5  Low
14 28 High
15 1  Low
16 6  Low
17 30 High
18 35 High
19 22 Low
20 10 Low

示例2

以下程式碼片段建立了一個示例資料框:

y<-round(rnorm(20,1,0.25),1)
df2<-data.frame(y)
df2

建立了以下資料框:

    y
 1 1.4
 2 0.9
 3 1.0
 4 0.6
 5 1.1
 6 0.7
 7 0.9
 8 1.2
 9 0.8
10 1.1
11 0.7
12 0.4
13 1.1
14 0.8
15 1.1
16 0.7
17 1.7
18 0.8
19 1.1
20 0.6

要在上面建立的資料框中將y轉換為因子列,請將以下程式碼新增到上面的程式碼片段中:

y<-round(rnorm(20,1,0.25),1)
df2<-data.frame(y)
df2$y_Factor<-factor(ifelse(df2$y<1,"Rejected","Accepted"))
df2

輸出

如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:

    y  y_Factor
 1 1.4 Accepted
 2 0.9 Rejected
 3 1.0 Accepted
 4 0.6 Rejected
 5 1.1 Accepted
 6 0.7 Rejected
 7 0.9 Rejected
 8 1.2 Accepted
 9 0.8 Rejected
10 1.1 Accepted
11 0.7 Rejected
12 0.4 Rejected
13 1.1 Accepted
14 0.8 Rejected
15 1.1 Accepted
16 0.7 Rejected
17 1.7 Accepted
18 0.8 Rejected
19 1.1 Accepted
20 0.6 Rejected

更新於:2021年11月10日

3K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告