Здраствуйте,
Вот мой код:
Код:
n=10
w=0.5
Yit=1
Yic=1
Yr=0
'создание переменных'
Z<-runif(n)
U<-runif(n)
'определение влияния плацебо:'
for (i in 1:n){
if (U[i]>0.253)
Yic[i]<-1
else if (U[i]>(-0.253)&&U[i]<0.253)
Yic[i]<-w
else
Yic[i]<-0
}
'влияние лекарства:'
for (i in 1:n){
if (U[i]+Z[i]>0.321553)
Yit[i]<-1
else if (U[i]+Z[i]>-0.314919&&U[i]+Z[i]<0.321553)
Yit[i]<-w
else
Yit[i]<-0
}
'рандомизация:'
s<-sample(1:n,0.75*n,FALSE)
X <-rep(0,n)
X[s]<-1
Y <-X*Yit+(1-X)*Yic
for (j in 1:n){
if (Y[j]==0)
Yr[j]<-1
else if (Y[j]==w)
Yr[j]<-2
else
Yr[j]<-3
}
dat<-data.frame(Yr=as.factor(Yr),X=X,Z=Z)
datM<-data.frame(Y=Y,X=X,Z=Z)
Bm<-mlogit(Y ~ X + Z, data = datM, choise="Y", shape="wide")
Но в конечном итоге, выпадает такое сообщение:
Код:
Error in `row.names<-.data.frame`(`*tmp*`, value = value) :
invalid 'row.names' length
Я уже перечитал все возможные форумы, но на них объясняют решения проблем с уже готовой базой данных, и мне не понятно, что у меня не правильно. До этого пользовался всегда функцией multinom() из nnet package и все работало, но сейчас мне нужен аутпут именно из mlogit.