XLConnect出错

时间:2014-10-27 12:31:39

标签: r xlconnect

我正在尝试将Excel表格导入r。我使用了以下代码:

x <- loadWorkbook("x.xlsx")
b <- readWorksheet(x, sheet="b")

第一行工作正常,但是,运行第二行会出现以下错误:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘readWorksheet’ for signature ‘"jobjRef", "character"’

我在该表中没有遗漏值。

出于复制目的,请从https://github.com/ahmedfsalhin/1stpaper下载trial.xlsx

系统信息:Yosemite操作系统。

4 个答案:

答案 0 :(得分:14)

它似乎是根本原因&#34;是你应该添加代码来指定它所属的函数和包。在这种情况下,键入XLConnect::loadWorkbook以选择所需的一个。没有混淆,&#39;或R中随机选择重复的函数名称。选择取决于所有已加载包的加载顺序。使用search()查看为您输入的命令检查包的顺序。

例如,目前我得到

search()
 [1] ".GlobalEnv"            "package:caTools"      
 [3] "package:XLConnect"     "package:XLConnectJars"
 [5] "package:stats"         "package:graphics"     
 [7] "package:datasets"      "package:vecsets"      
 [9] "package:cgwtools"      "package:grDevices"    
[11] "package:utils"         "package:methods"      
[13] "Autoloads"             "package:base"

您会注意到,您的环境中的任何内容(.GlobalEnv)都会被首先选中,并且所有加载的库都会覆盖base包。

答案 1 :(得分:7)

经过多次斗争,找到了解决方案。在R studio中转到包并删除与XLConnect和xlsx相关的所有包。然后键入

,仅安装XLConnect软件包
  

install.packages(&#34; XLConnect&#34;,dependencies = TRUE)

此后问题不应该存在。

答案 2 :(得分:5)

在测试三个不同的软件包以将.xlsx文件加载到R( XLConnect xlsx gdata )时,我遇到了同样的问题。解决方案是为loadWorkbook指定名称空间:

d3_wb = XLConnect::loadWorkbook("Megadataset_v3.xlsx")
d3 = readWorksheet(d3_wb, 1)

无论是否加载/安装了 xlsx ,它都能正常工作。该错误是因为在 xlsx 中还有一个具有相同名称的函数,并且它默认使用了错误的函数,这取决于软件包的加载顺序。

答案 3 :(得分:-1)

试试看 x <-XLConnenct包中的readWorksheetFromFile(“ x.xlsx”)。