write.xlsx function not working

折月煮酒 提交于 2019-12-05 02:54:31

问题


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.


回答1:


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:

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



回答2:


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)



来源:https://stackoverflow.com/questions/47942984/write-xlsx-function-not-working

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!