write.xlsx function not working

2019-04-16 09:22发布

I am trying to use .xlsx library but function write.xlsx is returning error that such can not be found.

When I am installing library(xlsx) in log I can read:

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 is up to date.

标签: r xlsx r-xlsx
2条回答
beautiful°
2楼-- · 2019-04-16 09:29

xlsx needs Java. Please install the current Java version from https://www.java.com/de/

and watch out, that both R and java are either 32bit or 64bit as it is stated in the error message

... and make sure R and Java have matching architectures.

Or use writexls or openxlsx. They are not depending on Java (Thanks @Len)

查看更多
叛逆
3楼-- · 2019-04-16 09:38

There are at least three sets of R packages used for working with Excel files, including:

  1. xlsx -- requires rJava package
  2. openxlsx -- does not require rJava package
  3. readxl / writexl -- does not require rJava package

For options 2 and 3, the solution is simply to use install.packages() to install the desired package (as noted in another answer by @Linus), once you've updated R to the latest version.

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

or

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

A Working Example: Write to Excel File

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

...and the output:

enter image description here

If You Must Use rJava...

Unfortunately, option 1 is considerably more complicated than "install Java." If one must use xlsx or needs the rJava package to support other R packages, installation of Java varies significantly by operating system.

Windows: one must install a version of Java whose architecture is compatible with R (i.e. 32-bit vs. 64-bit). One may consider installing both 32-bit and 64-bit versions because some Windows programs installed on the computer may require 32-bit Java vs. 64-bit. With RStudio, one can configure R to use the 32-bit version of R if only 32-bit Java is installed on the machine.

Mac OS X: one must install Java and run a series of commands that are documented on the rJava Issues GitHub page, including executing an R script to reconfigure Java for R.

Linux: one needs to install Java using the package installer tool appropriate for the version of Linux, and then configure R to use it. For example, in Ubuntu one would install with the advanced packaging tool.

 sudo apt-get install openjdk-8-jdk # openjdk-9-jdk has some installation issues
 sudo R CMD javareconf
查看更多
登录 后发表回答