2011-08-25 92 views
0

我试图打开一个excel文件并做回归分析,但出现了一些错误。所以我在这里writen的命令,如果有人会这么好来帮我我没有用过这个节目不仅仅是几次..R项目文件打开问题

> library(RODBC) 
> library(mlogit) 
Loading required package: Formula 
Loading required package: statmod 
Loading required package: lmtest 
Loading required package: zoo 

Attaching package: 'zoo' 

The following object(s) are masked from 'package:base': 

    as.Date 

Loading required package: maxLik 
Loading required package: miscTools 
> z<-odbcConnectExcel("C:\\2008 Racedata.xls") 
> y<-sqlFetch(z,"Sheet1") 
> x<-mlogit.data(y,choice="winner",shape="long",id.var="datekey",alt.var="horseno") 
Error in `row.names<-.data.frame`(`*tmp*`, value = c("1.8", "1.11", "1.6", : 
    duplicate 'row.names' are not allowed 
In addition: Warning message: 
non-unique values when setting 'row.names': ‘10.2’, ‘10.4’, ‘10.8’, ‘100.7’, ‘101.1 
+2

你能请张贴在最起码'STR(Y)'的结果吗?你能否告诉我们过去对于不同数据集的类似分析是否有效?请阅读http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example,并考虑相应地编辑您的文章... –

+0

我不认为这是一个文件打开错误。你的错误发生在'mlogit.data'中,它对数据格式非常特别。也就是说,'mlogit'软件包有**全面的**手册和小插图,用于描述数据的外观。将您的数据格式与http://cran.r-project.org/web/packages/mlogit/mlogit.pdf比较 – Andrie

回答

0

我不知道ODBC驱动程序如何分配row.names当数据被导入。我希望它不会允许重复,因为R不允许在同一个数据框中重复行名。看起来row.names正在被第一列中的任何内容分配。

为了保证数据帧具有独特的行名字,你可以执行以下命令:

row.names(y) <- 1:length(y[,1])