如何在 R 中建立虛擬變數?


虛擬變數是一種變數,如果虛擬變數被建立的值存在於資料框架中,則該值變為 1,否則變為 0。因此,如果資料框架中有一個二元變數,則其將有兩個虛擬變數。要建立虛擬變數,我們可以使用 model.matrix 函式,如以下示例所示。

考慮以下資料框架 −

示例

 實戰

Temp<-sample(c("Hot","Cold"),20,replace=TRUE)
df1<-data.frame(Temp)
df1

輸出

   Temp
1  Cold
2  Hot
3  Cold
4  Cold
5  Hot
6  Hot
7  Hot
8  Cold
9  Hot
10 Hot
11 Cold
12 Hot
13 Cold
14 Cold
15 Hot
16 Hot
17 Hot
18 Hot
19 Cold
20 Hot

在 df1 中建立 Temp 的虛擬變數 −

示例

model.matrix(~Temp-1,data=df1)

輸出

  TempCold TempHot
1  1         0
2  0         1
3  1         0
4  1         0
5  0         1
6  0         1
7  0         1
8  1         0
9  0         1
10 0         1
11 1         0
12 0         1
13 1         0
14 1         0
15 0         1
16 0         1
17 0         1
18 0         1
19 1         0
20 0         1

attr(,"assign")

[1] 1 1
attr(,"contrasts")
attr(,"contrasts")$Temp
[1] "contr.treatment"

示例

 實戰

Group<-sample(c("A","B","C"),20,replace=TRUE)
df2<-data.frame(Group)
df2

輸出

   Group
1  B
2  C
3  B
4  A
5  A
6  C
7  C
8  C
9  C
10 A
11 B
12 A
13 A
14 C
15 B
16 B
17 C
18 A
19 C
20 A

在 df2 中建立 Group 的虛擬變數 −

示例

model.matrix(~Group-1,data=df2)

輸出

  GroupA GroupB GroupC
1   0     1      0
2   0     0      1
3   0     1      0
4   1     0      0
5   1     0      0
6   0     0      1
7   0     0      1
8   0     0      1
9   0     0      1
10  1     0      0
11  0     1      0
12  1     0      0
13  1     0      0
14  0     0      1
15  0     1      0
16  0     1      0
17  0     0      1
18  1     0      0
19  0     0      1
20  1     0      0

attr(,"assign")

[1] 1 1 1
attr(,"contrasts")
attr(,"contrasts")$Group
[1] "contr.treatment"

更新日期: 2021 年 2 月 10 日

976 次觀看

開啟你的 職業

透過完成課程獲得認證

開始使用
廣告
© . All rights reserved.