首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLConnect中的误差

XLConnect中的误差
EN

Stack Overflow用户
提问于 2014-10-27 12:31:38
回答 4查看 14.2K关注 0票数 12

我试图将excel表导入到r中。我使用了以下代码:

代码语言:javascript
复制
x <- loadWorkbook("x.xlsx")
b <- readWorksheet(x, sheet="b")

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

代码语言:javascript
复制
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘readWorksheet’ for signature ‘"jobjRef", "character"’

我在那张纸上没有遗漏的值。

为了进行复制,请从trial.xlsx下载https://github.com/ahmedfsalhin/1stpaper

系统信息:约塞米蒂操作系统。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-28 11:32:05

看起来,“根本原因”是您应该添加代码来指定函数和它所属的包。键入XLConnect::loadWorkbook以选择本例中所需的那个。在R中不存在“混淆”或重复函数名的随机选择。选择取决于所有加载包的加载顺序。使用search()查看为您输入的命令检查包的顺序。

例如,目前我得到

代码语言:javascript
复制
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包。

票数 17
EN

Stack Overflow用户

发布于 2015-04-09 03:05:00

经过大量的斗争找到了解决这个问题的方法。在related中,转到包并删除与XLConnect和xlsx相关的所有包。然后只安装XLConnect包,方法是

install.packages("XLConnect",dependencies=TRUE)

在此之后,这个问题就不存在了。

票数 7
EN

Stack Overflow用户

发布于 2015-11-14 19:52:00

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

代码语言:javascript
复制
d3_wb = XLConnect::loadWorkbook("Megadataset_v3.xlsx")
d3 = readWorksheet(d3_wb, 1)

然后,不管是否加载/安装了xlsx,它都能工作。这个错误是因为xlsx中还有一个同名的函数,它默认使用错误的函数,这取决于加载包的顺序。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26587659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档