Требуется ли для mlogit конкретное имя строки?

У меня есть данные, которые выглядят так:

## # A tibble: 6 x 7
##   sampleno    h0    h1    h2    h3    h4 correct_hyp_no
##<dbl> <dbl> <dbl> <dbl> <dbl> <dbl><dbl>
## 1 0  7498  7147  7137  7003  7003 0
## 2 1  7349  7133  7104  7065  6960 0
## 3 2  6907  6676  6671  6575  6575 0
## 4 3  7339  7267  7133  7089  7051 0
## 5 4  5378  5316  5248  5205  5171 NA
## 6 5  7411  7253  7233  7137  7118 4

Когда я бегу

mlogit(correct_hyp_no ~ h0 + h1 + h2 + h3 + h4, my_data)

Я получаю ошибку

Ошибка в data.frame (lapply (index, function (x) x [drop = TRUE]), row.names = rownames (mydata)): указанные имена строк имеют неправильную длину

Я новичок в R. Я не называл строки явно, но похоже, что он автоматически выбирает 1,2,3,4,5,6 в качестве имен. Что не так, пожалуйста?


person Mohan    schedule 29.09.2019    source источник
comment
Ваш пример не самодостаточен, поэтому мы не можем помочь. Возможно, упаковка my_data в as.data.frame() может решить проблему.   -  person Michael M    schedule 29.09.2019


Ответы (1)


Моя репутация слишком низкая, чтобы давать комментарии, но, как сказал Майкл М., вы не привели воспроизводимого примера. Тем не менее, есть несколько вещей, которые вы можете сделать, чтобы начать работу.

  1. Данные необходимо преобразовать в формат, понятный mlogit. Ваши данные имеют широкий формат, поэтому вы захотите преобразовать их в длинный формат. См. ?mlogit.data.
  2. Преобразование данных позаботится о переменной результата, которая будет закодирована как ИСТИНА / ЛОЖЬ. Однако, вероятно, потребуется исключить ситуации, когда результат не был записан, то есть где correct_hyp_no == NA.

Если настройка данных не работает правильно, предоставьте воспроизводимый MWE и дополнительную информацию о том, что вы пытаетесь сделать.

person edsandorf    schedule 10.10.2019