我尝试使数据与mlogit中的r软件包一起使用。我无法使用mlogit.data
命令将宽数据格式转换为长格式,因此我自己使用melt
进行了尝试。
到目前为止,这是我所拥有的(case
是大小写标识符,dv
是因变量,table
是宽格式的数据,newdata
在长格式):
case<-c(1,2,3)
dv<-c(1,3)
table<-as.data.frame(cbind(IssueID,dv))
newdata<-melt(setDT(table),id.vars = c("IssueID"),measure.vars = c("dv"))
宽格式:
case dv
1: 1 1
2: 2 2
3: 3 3
长格式:
IssueID variable value
1: 1 dv 1
2: 2 dv 2
3: 3 dv 3
但是,要使用mlogit
运行数据,我需要一个数据集,其中包含每种情况下因变量的所有值,以及一个虚拟对象,该虚拟对象存储信息以观察单位选择了这些备选方案中的哪个。
可用数据应如下所示:
#case2<-c(1,1,3,3)
#variable2<-(c("dv","dv","dv"))
#value2<-c(1,3)
#choice2<-c(1,1)
#newdata2<-as.data.frame(cbind(case2,variable2,value2,choice2))
case2 variable2 value2 choice2
1 1 dv 1 1
2 1 dv 2 0
3 1 dv 3 0
4 2 dv 1 0
5 2 dv 2 1
6 2 dv 3 0
7 3 dv 1 0
8 3 dv 2 0
9 3 dv 3 1
您对执行此操作的代码有什么建议,这样就不必手动编写选择变量了?谢谢您的协助。