如何在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"

以上是 如何在R中创建虚拟变量? 的全部内容, 来源链接: utcz.com/z/361436.html

回到顶部