【问题标题】:Error in XLConnectXLConnect 中的错误
【发布时间】:2014-12-22 15:17:49
【问题描述】:

我正在尝试将 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

系统信息:优胜美地操作系统。

【问题讨论】:

  • 发布导致此问题的示例工作簿的链接将非常有帮助。也就是说,优胜美地是全新的;您可能需要重新安装 Java 和/或等待 Rjava 的新 CRAN 版本。
  • @CarlWitthoft 我刚刚更新了问题,提供了一个指向 excel 文件的链接以进行重现。
  • @CarlWitthoft 我确实更新到 Java Development Kit 8 (JDK 8),再次安装 XLConnect 后,它现在可以正常工作了。
  • @CarlWitthoft 抱歉,它不是 Java。造成混乱的是 xlsx 包。

标签: r xlconnect


【解决方案1】:

试试这个 x

【讨论】:

    【解决方案2】:

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

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

    然后它可以工作,无论 xlsx 是否已加载/安装。该错误是因为 xlsx 中还有一个同名的函数,它默认使用错误的函数,这取决于加载包的顺序。

    【讨论】:

      【解决方案3】:

      经过大量的努力找到了解决方案。在 R Studio 中,转到包并删除与 XLConnect 和 xlsx 相关的所有包。然后通过键入

      仅安装 XLConnect 包

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

      在此之后问题不应该存在。

      【讨论】:

      • 当我尝试使用 writeWorksheet 将数字写入单元格并收到相同的错误时,它适用于我。
      【解决方案4】:

      看来“根本原因”是您应该添加代码来指定函数及其所属的包。在这种情况下,键入 XLConnect::loadWorkbook 以选择您想要的。 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 包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-09
        • 1970-01-01
        • 2011-12-19
        相关资源
        最近更新 更多