Пакет R xlsx использовать нельзя - PullRequest
0 голосов
/ 26 мая 2020

Моя версия R studio 4.0. Я установил пакет xlsx, но когда мне нужно его использовать, я получаю сообщение об ошибке:

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)

Итак, согласно этому примечанию, я установил 'r Java' и хочу сначала загрузить этот пакет, но я все еще получаю сообщение об ошибке:

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' и 'r Java'? Спасибо.

1 Ответ

5 голосов
/ 26 мая 2020

Пакет xlsx зависит от пакета rJava, для которого требуется действующая установка Java Runtime Environment (JRE). Перед установкой пакета rJava необходимо установить Java Runtime Environment (JRE). Процесс установки JRE зависит от операционной системы, и Oracle усложнил этот процесс из-за изменений, внесенных в лицензионные требования для Java начиная с 2019 года.

Как узнать, установлена ​​ли JRE?

Как отмечено в комментариях к вопросу, можно проверить версию среды выполнения Java, установленную на машине, с помощью командной строки java -version. Также важно подтвердить, что среда выполнения Java доступна из R / RStudio. Мы можем сделать это, выполнив функцию system() в RStudio, как указано в комментариях к вопросу.

> 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

Есть два разных подхода к решению этой проблемы. Вот краткое изложение инструкций, которые я написал на этом топе c для курса Johns Hopkins Data Science Specialization Получение и очистка данных , Общие проблемы: Java и пакет xlsx назад в 2017 г.

Решение 1. Используйте пакет Excel Reader, который не требует Java

СОВЕТ ПРОФЕССИОНАЛА: Самый простой способ обойти эту проблему - используйте пакет R, который не зависит от Java, например openxlsx или readxl .

Для 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(...)

Обратите внимание, что есть дополнительный пакет writexl, который позволяет людям писать файлы Excel.

Решение 2: Установите Java и обязательные пакеты R

Тем не менее, для людей, которые хотят использовать пакет xlsx для работы с файлами Excel, есть работающие решения для Windows, Ma c OSX и Ubuntu Linux.

РЕШЕНИЕ (Windows): Загрузите и установите последнюю версию Java Runtime Environment из Oracle. Обратите внимание: если вы используете 64-битную версию R, вам необходимо установить 64-битную версию Java Runtime.

РЕШЕНИЕ (Ma c OSX): В новых выпусках Ma c OSX это стало более сложным. После установки Java Development Kit на компьютер необходимо выполнить определенный набор команд c. Они описаны на r Java Issue 86 странице github . Я приложил снимок экрана с этим решением, чтобы люди могли напрямую ссылаться на него.

enter image description here

РЕШЕНИЕ (Ubuntu): Используйте Ubuntu Advanced Packaging Tool для установки Java, затем перенастройте Java в R.

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

Затем в R / RStudio установите пакет xlsx.

  install.packages("xlsx")

32-битное против 64-битного Java в Windows

Другая распространенная проблема, с которой могут столкнуться люди, - несовместимость между версией Java среды выполнения, которая установлен на их компьютере, а версия R, 32-разрядная или 64-разрядная.

Например, если у кого-то установлена ​​64-разрядная версия R, но есть 32-разрядная версия Java Среда выполнения установлена, R не будет видеть Java Среда выполнения, генерируя ту же «Java не установлена ​​ошибка», как указано выше.

РЕШЕНИЕ: Эта проблема может разрешается либо установкой 64-битной версии Java Runtime для Windows, либо изменением конфигурации RStudio для использования 32-битной версии R.

...