write.xlsx 功能不工作
write.xlsx function not working
我正在尝试使用 .xlsx 库,但函数 write.xlsx 正在返回无法找到此类库的错误。
当我在日志中安装库 (xlsx) 时,我可以阅读:
Error : .onLoad nie powiodło się w funkcji 'loadNamespace()' dla pakietu 'rJava', szczegóły:
wywołanie: fun(libname, pkgname)
błąd: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.
In addition: Warning messages:
1: pakiet ‘xlsx’ został zbudowany w wersji R 3.3.2
2: pakiet ‘rJava’ został zbudowany w wersji R 3.3.3
Error: pakiet ‘rJava’ nie mógł zostać załadowany
Java 是最新的。
xlsx 需要 Java。请安装来自 https://www.java.com/de/
的当前 Java 版本
注意,R 和 java 都是 32 位或 64 位的,正如错误消息中所述
... and make sure R and Java have matching architectures.
或使用writexls或openxlsx。它们不依赖于 Java(感谢@Len)
原始post中的代码失败,因为xlsx
包使用了Apache POIJavaAPI到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,解决方案是简单地使用 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")
...和输出:
如果你必须使用 rJava...
不幸的是,选项 1 和 2 比 "install 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
我正在尝试使用 .xlsx 库,但函数 write.xlsx 正在返回无法找到此类库的错误。
当我在日志中安装库 (xlsx) 时,我可以阅读:
Error : .onLoad nie powiodło się w funkcji 'loadNamespace()' dla pakietu 'rJava', szczegóły:
wywołanie: fun(libname, pkgname)
błąd: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.
In addition: Warning messages:
1: pakiet ‘xlsx’ został zbudowany w wersji R 3.3.2
2: pakiet ‘rJava’ został zbudowany w wersji R 3.3.3
Error: pakiet ‘rJava’ nie mógł zostać załadowany
Java 是最新的。
xlsx 需要 Java。请安装来自 https://www.java.com/de/
的当前 Java 版本注意,R 和 java 都是 32 位或 64 位的,正如错误消息中所述
... and make sure R and Java have matching architectures.
或使用writexls或openxlsx。它们不依赖于 Java(感谢@Len)
原始post中的代码失败,因为xlsx
包使用了Apache POIJavaAPI到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,解决方案是简单地使用 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")
...和输出:
如果你必须使用 rJava...
不幸的是,选项 1 和 2 比 "install 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