如何在R資料框中基於其他變數的條件建立一個包含二元變數的列?


有時我們需要建立額外的變數來新增有關現有資料的更多資訊,因為它增加了價值。這在進行特徵工程時尤其常用。如果我們瞭解到某些因素可能會影響我們的響應,那麼我們更傾向於將其作為變數新增到資料中,因此我們利用現有資料來建立它。例如,根據其他變數應用條件來建立另一個變數,例如,如果頻率匹配某個標準,則建立表示好壞的二元變數。

示例

考慮以下資料框:

 線上演示

set.seed(100)
Group<-rep(c("A","B","C","D","E"),times=4)
Frequency<-sample(20:30,20,replace=TRUE)
df1<-data.frame(Group,Frequency)
df1

輸出

 Group Frequency
1  A    29
2  B    26
3  C    25
4  D    22
5  E    28
6  A    29
7  B    26
8  C    25
9  D    25
10 E    23
11 A    26
12 B    25
13 C    21
14 D    26
15 E    26
16 A    26
17 B    30
18 C    27
19 D    21
20 E    22

建立一個名為“類別”的列,包含“好”和“壞”兩個級別,其中“好”表示頻率大於25。

示例

df1$Category<-ifelse(df1$Frequency>25,"Good","Bad")
df1

輸出

 Group Frequency Category
1  A       29       Good
2  B       26       Good
3  C       25       Bad
4  D       22       Bad
5  E       28       Good
6  A       29       Good
7  B       26       Good
8  C       25       Bad
9  D       25       Bad
10 E       23       Bad
11 A       26       Good
12 B       25       Bad
13 C       21       Bad
14 D       26       Good
15 E       26       Good
16 A       26       Good
17 B       30       Good
18 C       27       Good
19 D       21       Bad
20 E       22       Bad

讓我們來看另一個例子:

示例

 線上演示

Class<-rep(c("Lower","Middle","Upper Middle","Higher"),times=5)
Ratings<-sample(1:10,20,replace=TRUE)
df2<-data.frame(Class,Ratings)
df2

輸出

     Class    Ratings
1    Lower       3
2    Middle      8
3 Upper Middle   2
4    Higher      9
5    Lower       2
6    Middle      3
7 Upper Middle   4
8    Higher      4
9    Lower       4
10   Middle      5
11 Upper Middle  7
12    Higher     9
13    Lower      4
14    Middle     2
15 Upper Middle  6
16    Higher     7
17    Lower      1
18    Middle     6
19 Upper Middle  9
20    Higher     9

示例

df2$Group<-ifelse(df2$Ratings>5,"Royal","Standard")
df2

輸出

      Class    Ratings    Group
1    Lower       3       Standard
2    Middle      8         Royal
3 Upper Middle   2       Standard
4    Higher      9         Royal
5    Lower       2       Standard
6    Middle      3       Standard
7 Upper Middle   4       Standard
8    Higher      4       Standard
9    Lower       4       Standard
10   Middle      5       Standard
11 Upper Middle  7         Royal
12    Higher     9         Royal
13    Lower      4       Standard
14    Middle     2       Standard
15 Upper Middle  6         Royal
16    Higher     7         Royal
17    Lower      1       Standard
18    Middle     6         Royal
19 Upper Middle  9         Royal
20    Higher     9         Royal

更新於:2020年9月9日

8K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.