在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
廣告