我将使用R语言中的
在导入数据之后,可以使用以下代码:
我遇到了如下错误:
mlogit
包进行操作。在导入数据之后,可以使用以下代码:
t <-read.csv('junk.csv',header=TRUE, sep=",", dec=".")
并调用:
x <- mlogit.data(t,choice="D",shape="long",id.var="key",alt.var="altkey")
我遇到了如下错误:
Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.1", "1.2", "1.3", :
duplicate 'row.names' are not allowed
In addition: Warning message:
non-unique values when setting 'row.names': ‘1.1’, ‘1.2’, ‘1.3’, ‘1.4’, ‘1.5’, ‘1.6’
有什么办法可以修复它吗?
我的数据以以下格式存在csv文件中:
[junk.csv]
key,altkey,A,B,C,D
201005131,1,2.6,118.17,117,0
201005131,2,1.4,117.11,115,0
201005131,3,1.1,117.38,122,1
201005131,4,24.6,,122,0
201005131,5,48.6,91.90,122,0
201005131,6,59.8,,122,0
201005132,1,20.2,118.23,113,0
201005132,2,2.5,123.67,120,1
201005132,3,7.4,116.30,120,0
201005132,4,2.8,118.86,120,0
201005132,5,6.9,124.72,120,0
201005132,6,2.5,123.81,120,0
201005132,7,8.5,119.23,115,
mlogit.data
,代码假定每个受访者的备选项包含完整集合。这就是我从不使用mlogit.data
,而是自己构建长格式数据的部分原因。安装该模型的mlogit
函数可以处理您描述的数据类型。 - Andriemlogit()
应用于这些数据。 - sautedmanmlogit()
有更好的解决方案,但没有进一步阐述。我认为如果您在这一点上进行扩展,您的答案会更好。 - sautedmanmlogit.data(..., id.var="key"...)
中将参数更改为mlogit.data(..., chid.var="key"...)
(就像您手动构建数据框并调用 mlogit 时所做的那样),则可以使用 mlogit.data 处理不同数量的选择。 - LmW.