mlogit.data() Error: Assigned data `ids` must be compatible with existing data

15,224

Problem solved: the tibble "work" has to be converted into dataframe.

After using

work <- as.data.frame(work)

the code functions properly i.e. the Error message is eliminated.

Share:
15,224
Admin
Author by

Admin

Updated on July 23, 2022

Comments

  • Admin
    Admin almost 2 years

    I have been working hours on that and I simply cannot find any solution to the problem. Hopefully someone here can help.

    I'm trying to create a personal choice matrix for some data with the following structure:

    # A tibble: 2,152 x 32
         age choice canton  lr_s dist_svp dist_fdp dist_bdp dist_cvp dist_glp dist_sp
       <dbl> <fct>  <fct>  <dbl>    <dbl>    <dbl>    <dbl>    <dbl>    <dbl>   <dbl>
     1    39 sp     GE         3       49       25       25        4       16       1
     2    67 sp     ZH         0      100       49       64        4       25       0
     3    42 svp    ZH         7        4        4        1       36        4      36
    
       dist_gps pid_svp pid_fdp pid_bdp pid_cvp pid_glp pid_sp pid_gps french italian
          <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>  <dbl>   <dbl>  <dbl>   <dbl>
     1        0       0       0       0       0       0      0       1      1       0
     2        9       0       0       0       0       0      1       0      0       0
     3       36       0       0       0       0       0      1       0      0       0
    

    Now, I need to create a personal choice matrix with the 7 alternatives that are indicated by dist_* / pid_* in the columns.

    This should, according to my understanding, work with the following code:

    work.pc <- mlogit.data(work,
                           varying = c(5:11, 12:18),
                           choice = "choice",
                           shape = "wide",
                           sep = "_")
    

    However, when I run this code, I get the following Error message and a few Warning messages:

    Error: Assigned data `ids` must be compatible with existing data.
    x Existing data has 15064 rows.
    x Assigned data has 2152 rows.
    ℹ Only vectors of size 1 are recycled.
    Run `rlang::last_error()` to see where the error occurred.
    In addition: Warning messages:
    1: Setting row names on a tibble is deprecated. 
    2: Setting row names on a tibble is deprecated. 
    3: Setting row names on a tibble is deprecated. 
    4: Setting row names on a tibble is deprecated. 
    5: Setting row names on a tibble is deprecated. 
    6: Setting row names on a tibble is deprecated. 
    7: Setting row names on a tibble is deprecated. 
    

    What's the issue here? I'm grateful for any help! I've tried everything.