使用 mlogit R 函数时出错:"The two indexes don't define unique observations"

Error with using mlogit R function: "The two indexes don't define unique observations"

我的数据集是这样的

ID  choice_situation    Alternative Attr1   Attr2   Attr3   choice
ID_1    1   1   0   0   0   0
ID_1    1   2   1   1   0   1
ID_1    2   1   1   1   0   0
ID_1    2   2   1   1   1   1
ID_1    3   1   2   1   0   1
ID_1    3   2   3   1   0   0
ID_2    1   1   3   0   1   1
ID_2    1   2   0   0   0   0
ID_2    2   1   2   1   1   0
ID_2    2   2   2   1   1   1
ID_2    3   1   0   0   0   1
ID_2    3   2   0   0   1   0
.....

每次我运行mlogit函数的代码

DCE_data<- mlogit.data(data=dataset, choice = "choice", shape = "long", alt.var = "Alternative", id.var = "ID") #ok
model<- mlogit(choice ~ Attr1 + Attr2 + Attr3 | 0, DCE_data)#error

我收到以下错误:

Error in dfidx(x, .idx, pkg = pkg) : 
  the two indexes don't define unique observations

问题来自转换后的数据:DCE_data ?

提前致谢!

对我来说你的代码有效:

library(tidyverse)
df <- tibble::tribble(
           ~ID, ~choice_situation, ~Alternative, ~Attr1, ~Attr2, ~Attr3, ~choice,
        "ID_1",                1L,           1L,     0L,     0L,     0L,      0L,
        "ID_1",                1L,           2L,     1L,     1L,     0L,      1L,
        "ID_1",                2L,           1L,     1L,     1L,     0L,      0L,
        "ID_1",                2L,           2L,     1L,     1L,     1L,      1L,
        "ID_1",                3L,           1L,     2L,     1L,     0L,      1L,
        "ID_1",                3L,           2L,     3L,     1L,     0L,      0L,
        "ID_2",                1L,           1L,     3L,     0L,     1L,      1L,
        "ID_2",                1L,           2L,     0L,     0L,     0L,      0L,
        "ID_2",                2L,           1L,     2L,     1L,     1L,      0L,
        "ID_2",                2L,           2L,     2L,     1L,     1L,      1L,
        "ID_2",                3L,           1L,     0L,     0L,     0L,      1L,
        "ID_2",                3L,           2L,     0L,     0L,     1L,      0L
        )

library(mlogit)
DCE_data<- mlogit.data(data=df, choice = "choice", shape = "long", alt.var = "Alternative", id.var = "ID") #ok
model<- mlogit(choice ~ Attr1 + Attr2 + Attr3 | 0, DCE_data)#error
summary(model)

> model

Call:
mlogit(formula = choice ~ Attr1 + Attr2 + Attr3 | 0, data = DCE_data,     method = "nr")

Coefficients:
   Attr1     Attr2     Attr3  
 0.34137  14.86152   0.39473