原始帖子中的代码失败,因为该xlsx
包使用Apache POI Java API to Excel,因此需要该rJava
包。反过来,该rJava
包需要一个工作的、兼容的 Java 运行时环境版本才能安装在机器上并且可以从 R 访问。
system()
可以通过该函数判断是否可以从 R / RStudio 访问 Java 。
> system("java -version")
java version "13.0.2" 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
>
至少有四组 R 包用于处理 Excel 文件,包括:
- xlsx -- 需要 rJava 包
- XLConnect -- 需要 rJava 包
- openxlsx -- 不需要 rJava 包
- readxl / writexl -- 不需要 rJava 包
对于选项 3 和 4,一旦您将 R 更新到最新版本,解决方案就是install.packages()
用于安装所需的包(如 @Linus 的另一个答案中所述)。
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")
...和输出:
如果你必须使用 rJava...
不幸的是,选项 1 和 2 比“安装 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 问题 GitHub 页面上的一系列命令,包括执行 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