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.
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Author by
Admin
Updated on July 23, 2022Comments
-
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.