Я пытаюсь заставить мои данные работать с mlo git -пакетом в r . Мне не удалось преобразовать широкий формат данных в длинный формат с помощью команды mlogit.data
, поэтому я попробовал сам, используя melt
.
Это то, что у меня есть (case
- это идентификатор случая, dv
будет зависимой переменной, table
- данные в широком формате, newdata
в длинном формате):
case<-c(1,2,3)
dv<-c(1,2,3)
table<-as.data.frame(cbind(IssueID, dv))
newdata<-melt(setDT(table), id.vars = c("IssueID"), measure.vars = c("dv"))
Широкий формат:
case dv
1: 1 1
2: 2 2
3: 3 3
Длинный формат:
IssueID variable value
1: 1 dv 1
2: 2 dv 2
3: 3 dv 3
Однако для запуска данных с mlogit
мне нужен набор данных, который содержит все значения зависимой переменной для каждого случая и фиктивный элемент, в котором хранится информация о том, какая из этих альтернатив была выбрана единицей наблюдения.
Используемые данные должны выглядеть следующим образом:
#case2<-c(1,1,1,2,2,2,3,3,3)
#variable2<-(c("dv","dv","dv","dv","dv","dv","dv","dv","dv"))
#value2<-c(1,2,3,1,2,3,1,2,3)
#choice2<-c(1,0,0,0,1,0,0,0,1)
#newdata2<-as.data.frame(cbind(case2, variable2,value2,choice2))
case2 variable2 value2 choice2
1 1 dv 1 1
2 1 dv 2 0
3 1 dv 3 0
4 2 dv 1 0
5 2 dv 2 1
6 2 dv 3 0
7 3 dv 1 0
8 3 dv 2 0
9 3 dv 3 1
Есть ли у вас какие-либо предложения для кода, который делает это, чтобы мне не пришлось кодировать переменную выбора вручную? Спасибо за вашу помощь.