write.xlsx函数不起作用

时间:2017-12-22 14:17:38

标签: r xlsx r-xlsx

我正在尝试使用.xlsx库,但函数write.xlsx返回的错误是无法找到的。

当我在日志中安装库(xlsx)时,我可以阅读:

<div class="row">
      <div ng-repeat-start="value in values" class="col-md-4">
        {{value}}
      </div>
      <div ng-repeat-end ng-if="$index % 3 == 0" class="clearfix"></div>
</div>

Java是最新的。

2 个答案:

答案 0 :(得分:8)

至少有三套R软件包用于处理Excel文件,包括:

  1. xlsx - 需要rJava包
  2. openxlsx - 不需要rJava包
  3. readxl / writexl - 不需要rJava包
  4. 对于选项2和3,解决方案只是使用install.packages()来安装所需的软件包(如@Linus的另一个答案中所述),一旦您将R更新到最新版本。

    install.packages("openxlsx") 
    library(openxlsx)
    

    install.packages(c("readxl","writexl")) 
    library(readxl)
    library(writexl)
    

    工作示例:写入Excel文件

    library(writexl)
    data <- data.frame(matrix(runif(100),nrow=10,ncol=10))
    write_xlsx(data,"./data/simpleExcel.xlsx")
    

    ...和输出:

    enter image description here

    如果必须使用rJava ...

    不幸的是,选项1比“安装Java”复杂得多。如果必须使用xlsx或需要rJava包来支持其他R包,则Java的安装会因操作系统而异。

    Windows:必须安装其架构与R兼容的Java版本(即32位与64位)。可以考虑安装32位和64位版本,因为计算机上安装的某些Windows程序可能需要32位Java而不是64位。使用RStudio,如果计算机上只安装了32位Java,则可以将R配置为使用32位版本的R.

    Mac OS X:必须安装Java并运行rJava Issues GitHub page中记录的一系列命令,包括执行R脚本为R重新配置Java。

    Linux:需要使用适用于Linux版本的软件包安装程序工具来安装Java,然后配置R以使用它。例如,在Ubuntu中,可以使用高级打包工具进行安装。

     sudo apt-get install openjdk-8-jdk # openjdk-9-jdk has some installation issues
     sudo R CMD javareconf
    

答案 1 :(得分:3)

xlsx需要Java。请从https://www.java.com/de/

安装当前的Java版本

并注意,R和java都是32位或64位,如错误消息中所述

  

...并确保R和Java具有匹配的体系结构。

或使用 writexls openxlsx 。它们不依赖于Java(Thanks @Len)