Ответ 1
Я всегда использую эти строки вверху:
options(java.parameters="-Xmx4000m")
options(java.home="C:/Program Files/Java/jre7/")
Смотрите, может быть, это помогает.
У меня возникла странная проблема с загрузкой пакета xlsx и использованием select.files.
Эта проблема началась, как только я обновил RStudio до последней версии (v0.97.237). Если я запускаю RStudio, а затем загружаю xlsx (т.е. library(xlsx)
), пакет загружается просто отлично. Однако, если я затем попытаюсь использовать choose.files()
, RStudio зависнет (фактически он постоянно запускается и не может быть закрыт, не заканчивая его с помощью диспетчера задач Win7). Если я запускаю RStudio и сначала использую select.files, он работает нормально. Если я затем запустил строку library(xlsx)
, пакет xlsx не будет загружаться. Он дает ошибку ниже.
Я попытался переустановить пакет xlsx (вместе с xlsxjars и rJava), но это не сработало. Не переустанавливала Java.
Любые предложения? Я использую R v2.15.2.
library(xlsx)
Loading required package: xlsxjars
Loading required package: rJava
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error : .onLoad failed in loadNamespace() for 'xlsxjars', details:
call: .jinit()
error: Cannot create Java virtual machine (-4)
Error: package ‘xlsxjars’ could not be loaded
EDIT: Вот проблема. Извините за любую путаницу. Когда я введу это:
filename<-file.choose() #select file
library(xlsx)
mydata<-read.xlsx(filename,1) #load datafile
Я могу успешно выбрать имя файла, но пакет xlsx не загружается, поэтому я не могу открыть файл данных. Я получаю ошибку выше. Однако, если я запустил это вместо (после того, как я закрыл и перезапустил RStudio):
library(xlsx)
filename<-file.choose() #select file
mydata<-read.xlsx(filename,1) #load datafile
Пакет xlsx загружается правильно, но file.choose
заставляет R запускаться неограниченно, поэтому script зависает, и я не могу загрузить файл. Это также имеет место при использовании choose.files()
. Я не знаю, почему эти две вещи (xlsx и file.choose
/choose.files
) будут противоречивыми, но кажется, что они есть, поскольку я могу использовать только один или другой, в зависимости от того, какой из них я использую в первую очередь.
ИЗМЕНИТЬ 2: Я пробовал это на другом компьютере (той же ОС, той же версии R, RStudio и Java), и я получаю ту же проблему.
ИЗМЕНИТЬ 3: Я вернулся к RStudio v0.97.90, и проблема исчезла. Я думаю, это проблема RStudio.
Я всегда использую эти строки вверху:
options(java.parameters="-Xmx4000m")
options(java.home="C:/Program Files/Java/jre7/")
Смотрите, может быть, это помогает.
Попробуйте очистить файлы Temp от
Панель управления > Программы > Java
Посмотрите, работает ли это.
Недавно я столкнулся с этой проблемой при установке R на новую машину. Убедитесь, что вы используете правильную версию Java (32-разрядную или 64-разрядную) в соответствии с вашей версией R. Обратите внимание, что 64-разрядная версия Java не найдена на главной странице загрузки, а в их "руководстве" d/l page здесь.
Попробуйте некоторые из этих пакетов:
install.packages("XLConnect")
install.packages("xlsxjars")
install.packages("xlsx")
Затем загрузите library()
Используйте read.xlsx2("blah.xlsx",sheetIndex=NULL)
Не используйте file.choose
, просто вставьте файл прямо в функцию read.xlsx2
или
read.xlsx2("blah.xlsx",sheetName=NULL")
Одним из новых пакетов является пакет rio. Он разрешил многие проблемы импорта и экспорта, которые у меня были, и имеет дополнительное преимущество, поскольку требуется только одна библиотека для импорта/экспорта многих разных форматов. Он определяет формат, основанный на расширении имени файла. Похоже, что он работает чище и быстрее, чем некоторые другие пакеты, хотя он использует в основном те же функции. Например, с файлами Excel он использует функцию write.xlsx
, но работал у меня с большими наборами данных, когда write.xlsx
этого не сделал. документацию пакетов можно найти здесь.
install.packages("rio")
library(rio)
import("myfile.xlsx")
export(df, "myfile.xlsx")
Я бы порекомендовал пакет Hadley readxl
, он устанавливает из CRAN без зависимостей Java.
library("readxl")
my_data <- read_excel(filename, sheet = 1)