如何将多列中的类别更改为虚拟变量

Sey*_*ORO 1 r

我有一个包含很多类别的变量,要求个人选择他们的前 3 个选择。所以选择是A、B、C和D这里(确实,在我的数据库中有超过 4 个可能的选择)

`var1:choice1`<-c("A","B","C")

`var1:choice2`<-c("B","C","A")

`var1:choice3`<-c("C","D","B")

id=1:3

mydata<-data.frame(id,`var1:choice1`,`var1:choice2`,`var1:choice3`)
Run Code Online (Sandbox Code Playgroud)

现在我想将选项更改为虚拟变量,以便我可以获得每个选项出现的次数。我应该有下面这张表:

 var1.A var1.B var1.C var1.D
1      1      1      1      0
2      0      1      1      1
3      1      1      1      0
Run Code Online (Sandbox Code Playgroud)

All*_*ron 5

在 R 基础中,您可以创建一个简单的表:

table(rep(mydata[[1]], 3), paste0('var1.', unlist(mydata[-1])))
   
    var1.A var1.B var1.C var1.D
  1      1      1      1      0
  2      0      1      1      1
  3      1      1      1      0
Run Code Online (Sandbox Code Playgroud)