簡體   English   中英

R xlsx package 不能用

[英]R xlsx package can not be used

我的 R 工作室版本是 4.0。 我安裝了xlsx package,但是當我需要使用它時,我得到一個錯誤:

library(xlsx)
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
Error: package or namespace load failed for ‘xlsx’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JVM could not be found
In addition: Warning messages:
1: In system("/usr/libexec/java_home", intern = TRUE) :
  running command '/usr/libexec/java_home' had status 1
2: In fun(libname, pkgname) :
  Cannot find JVM library 'NA/lib/server/libjvm.dylib'
Install Java and/or check JAVA_HOME (if in doubt, do NOT set it, it will be detected)

所以根據this note,我安裝了'rJava'並想首先加載這個package,但我仍然得到一個錯誤:

library(rJava)
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
Error: package or namespace load failed for ‘rJava’:
 .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JVM could not be found
In addition: Warning messages:
1: In system("/usr/libexec/java_home", intern = TRUE) :
  running command '/usr/libexec/java_home' had status 1
2: In fun(libname, pkgname) :
  Cannot find JVM library 'NA/lib/server/libjvm.dylib'
Install Java and/or check JAVA_HOME (if in doubt, do NOT set it, it will be detected)

有人能給我一些關於如何加載“xlsx”和“rJava”包的建議嗎? 謝謝你。

xlsx package 依賴於rJava package,這需要有效安裝 Java 運行時環境 (JRE)。 在安裝rJava package 之前,必須安裝 Java 運行時環境 (JRE)。 安裝 JRE 的過程因操作系統而異,Oracle 使此過程更加困難,因為他們從 2019 年開始對 Java 的許可要求進行了更改

如何判斷是否安裝了 JRE?

如對該問題的評論中所述,可以使用命令行java -version驗證安裝在機器上的 Java 運行時的版本。 還必須確認 Java 運行時可從 R / RStudio 訪問。 我們可以通過在 RStudio 中執行system() function 來做到這一點,也如問題評論中所述。

> system("java -version")
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
[1] 0
> 

將 Excel 文件讀入 R

有兩種不同的方法來解決這個問題。 這是我在 2017 年為約翰霍普金斯大學數據科學專業化獲取和清理數據課程常見問題:Java 和 xlsx package撰寫的關於此主題的說明摘要。

解決方案 1:使用不需要 Java 的 Excel 閱讀器 Package

專業提示:解決此問題的最簡單方法是使用不依賴於 Java 的R package,例如 openxlx

對於openxlsx ,這很容易。

  install.packages("openxlsx")
  library(openxlsx)
  # read the help file to identify the arguments needed to 
  # correctly read the file
  ?openxlsx
  theData <- read.xlsx(...)

相同的過程可用於readxl

  install.packages("readxl")
  library(readxl)
  # read the help file to identify the arguments needed to 
  # correctly read the file 
  ?readxl
  theData <- read_excel(...)

請注意,還有一個互補的 package writexl ,它使人們能夠編寫 Excel 文件。

解決方案 2:安裝 Java 和所需的 R 包

That said, for people who want to use the xlsx package to work with Excel files, there are workable solutions for Windows, Mac OSX, and Ubuntu Linux.

解決方案 (Windows):從 Oracle 下載並安裝最新版本的Java 運行時環境 請注意,如果您運行的是 64 位版本的 R,則需要安裝 64 位版本的 Java Runtime。

解決方案 (Mac OSX):隨着 Mac OSX 的更新版本,這變得更加復雜。 在計算機上安裝Java 開發套件后,需要遵循一組特定的命令。 這些記錄在rJava 問題 86 github 頁面上 我已經包含了這個解決方案的截圖供人們直接參考。

在此處輸入圖像描述

SOLUTION (Ubuntu): Use the Ubuntu Advanced Packaging Tool to install Java, then reconfigure Java in R.

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

然后在 R / RStudio 中安裝xlsx package。

  install.packages("xlsx")

Windows 中的 32 位與 64 位 Java

人們可能遇到的另一個常見問題是安裝在他們計算機上的 Java 運行時環境版本與 32 位或 64 位 R 版本之間的不兼容。

For example, if one has installed the 64-bit version of R but has the 32-bit version of Java Runtime Environment installed, R will not have visibility to the Java Runtime Environment, generating the same "Java not installed error" as noted above .

SOLUTION: This problem can be resolved by either installing the 64-bit version of Java Runtime for Windows , or by changing the RStudio configuration to use the 32-bit version of R.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM