【问题标题】:mlogit duplicate 'row.names' are not allowed不允许使用 mlogit 重复的“row.names”
【发布时间】:2014-12-13 22:41:08
【问题描述】:

R 新手,想使用mlogit 函数。

但是在将我的数据放入数据框并运行之后

x <- mlogit.data(mlogit, choice="PlacedN", shape="long", alt.var="RaceID")

我收到duplicate 'row.names' are not allowed

如果需要,我可以上传我的文件

【问题讨论】:

  • 最好有一个可重现的示例/文件来检查问题。
  • 因此您可以更改行名或尝试使用允许重复行名的矩阵(可能无法正常工作,因为文档说输入需要是数据框)
  • @akrun 请转到名为 mlogit 的链接,感谢您的帮助 link
  • 那里只有一个 csv 文件。这可能随时消失,使这个问题过时了。请通过包含模拟数据使您的问题可重现。这也是您了解数据的绝佳工具。

标签: r duplicates mlogit


【解决方案1】:

您可能希望将"RaceID" 放入alt.levels 参数而不是alt.var。来自mlogit.data 帮助文件:

alt.levels

替代项的名称:如果为null,对于宽的data.frame,它们是从变量名和选择变量中猜测的(两者应该是相同的),对于长的data.frame,它们是从alt.var 参数。

试试这个。

library(mlogit)
m <- read.csv("mlogit.csv")
mlogd <- mlogit.data(m, choice="PlacedN", shape="long", alt.levels="RaceID")
head(mlogd)
#            RaceID PlacedN   RSP TrA JoA aDS bDS mDS aDH bDH mDH LDH  MR eMR
# 1.RaceID 20119552    TRUE  3.00  13  12   0   0   0   0   0   0   0   0 131
# 2.RaceID 20119552   FALSE  4.00  23  26  91  94  94 139 153 145 153 150 150
# 3.RaceID 20119552   FALSE  0.83  15  15  99 127  99 150 153 150 153 159 159
# 4.RaceID 20119552   FALSE 18.00  21  15   0   0   0   0   0   0   0   0 131
# 5.RaceID 20119552   FALSE 16.00  16  12  92 127  92 134 135 134 135 136 136
# 6.RaceID 20119617    TRUE  2.50  12  10   0   0   0   0   0   0   0   0 152

【讨论】:

  • 谢谢它加载正常但是当我去尝试摘要时(mlogit(PlacedN~TrA+JoA -1,data=x))我在colnames&lt;-*tmp*,值=“ RaceID") : 尝试在小于二维的对象上设置 'colnames'
  • @Michael - 该代码与您的问题中的代码完全不同
  • 请提出一个与此相关的新问题,因为这是一项新的单独任务
  • @RichScriven OP 在您的回答中指出了一个问题,即在 alt.levels 中指定列名会创建一个只有一个值的“替代”列:列名。这无助于解决问题。
猜你喜欢
  • 1970-01-01
  • 2012-02-09
  • 2020-12-10
  • 1970-01-01
  • 2014-05-11
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
相关资源
最近更新 更多