我只是编写一个数据集来测试函数“mlogit”,它代表“多项逻辑回归模型”
数据很简单:
head(dat)
y x1 x2 x3
1 4 1 18 4
2 5 1 20 5
3 2 1 25 3
4 3 0 26 6
5 4 0 26 8
6 3 1 27 4
然后当我输入
fit <- mlogit(y ~ x1 + x2 + x3, data=dat)
出现以下消息:
Error in `row.names<-.data.frame`(`*tmp*`, value = value) :
invalid 'row.names' length
有谁知道为什么或如何解决它?
答案 0 :(得分:7)
帮助说明:
'data'参数可以是普通的'data.frame'。在这种情况下, 应提供一些补充论据并传递给 “mlogit.data”。
您尚未提供任何补充论据。请注意,我认为这篇文档很差,因为它没有说明应该提供哪些补充参数。
从示例中,似乎至少应该设置“形状”和“选择”:
# a data.frame in wide format with two missing prices
Fishing2 <- Fishing
Fishing2[1, "price.pier"] <- Fishing2[3, "price.beach"] <- NA
mlogit(mode~price+catch|income, Fishing2, shape="wide", choice="mode", varying = 2:9)
# a data.frame in long format with three missing lines
data("TravelMode", package = "AER")
Tr2 <- TravelMode[-c(2, 7, 9),]
mlogit(choice~wait+gcost|income+size, Tr2, shape = "long",
chid.var = "individual", alt.var="mode", choice = "choice")
顺便说一句,欢迎来到stackoverflow!以下是一些关于撰写更好问题的提示,从而增加了良好答案的机会。
head
命令的输出,但不清楚是否可以使用该命令重现该错误。 library(mlogit)
也应该以最小的例子给出。some supplementary arguments should be provided
会跳出来。如果您不确定如何访问mlogit
命令的帮助,可以使用?mlogit
或help(mlogit)
。