我正在尝试将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操作系统。
答案 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)
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”)。