Пожалуйста, помогите мне найти лучший способ импортировать файл excel 2007 (.xlsx) в R. Я пробовал несколько методов, но ни один из них не работает. Я обновился до 2.13.1, windows XP, xlsx 0.3.0, я не знаю, почему ошибка продолжает появляться. Я старался:
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")
ИЛИ
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1)
но я получаю сообщение об ошибке:
Error in .jnew("java/io/FileInputStream", file) :
java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified)
Спасибо.
.csv
.file.exists("C:/AB_DNA_Tag_Numbers.xlsx")
?Ответы:
Для решения, свободного от утомительных внешних зависимостей *, теперь есть
readxl
:Его можно установить так:
install.packages("readxl") # CRAN version
или
devtools::install_github("hadley/readxl") # development version
Применение
library(readxl) # read_excel reads both xls and xlsx files read_excel("my-old-spreadsheet.xls") read_excel("my-new-spreadsheet.xlsx") # Specify sheet with a number or name read_excel("my-spreadsheet.xls", sheet = "data") read_excel("my-spreadsheet.xls", sheet = 2) # If NAs are represented by something other than blank cells, # set the na argument read_excel("my-spreadsheet.xls", na = "NA")
* не совсем верно, требуется
Rcpp
пакет , который, в свою очередь, требует Rtools (для Windows) или Xcode (для OSX), которые являются зависимостями, внешними по отношению к R. Но они не требуют возиться с путями и т. д., так что преимущество перед зависимостями Java и Perl.Обновление Теперь есть пакет rexcel . Это обещает получить форматирование Excel, функции и многие другие виды информации из файла Excel в R.
источник
Вы также можете попробовать пакет XLConnect. Мне с ним повезло больше, чем с xlsx (к тому же он может читать файлы .xls).
library(XLConnect) theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)
также, если у вас возникли проблемы с тем, что ваш файл не был найден, попробуйте выбрать его с помощью file.choose ().
источник
readWorksheet(loadWorkbook(...))
вы можете сделать то же самое немного более краткоreadWorksheetFromFile(...)
.Я бы определенно попробовал
read.xls
функцию вgdata
пакете, который значительно более зрелый, чемxlsx
пакет. Может потребоваться Perl ...источник
Обновить
Поскольку ответ ниже теперь несколько устарел, я бы просто обратил внимание на пакет readxl . Если лист Excel хорошо отформатирован / разложен, я бы теперь использовал readxl для чтения из книги. Если листы плохо отформатированы / разложены, я все равно экспортирую в CSV, а затем решу проблемы в R либо через,
read.csv()
либо просто старыйreadLines()
.Оригинал
Я предпочитаю сохранять отдельные листы Excel в файлах со значениями, разделенными запятыми (CSV). В Windows эти файлы связаны с Excel, поэтому вы не потеряете функцию двойного щелчка и открытия в Excel.
Файлы CSV могут быть прочитаны в R с помощью
read.csv()
или, если вы находитесь в каком-либо месте или используете компьютер, настроенный с некоторыми европейскими настройками (где,
используется как десятичный разряд), используяread.csv2()
.У этих функций есть разумные значения по умолчанию, которые упрощают чтение правильно отформатированных файлов. Просто оставьте метки для образцов или переменных в первой строке или столбце.
Дополнительные преимущества хранения файлов в CSV заключаются в том, что, поскольку файлы представляют собой обычный текст, их можно очень легко передавать, и вы можете быть уверены, что они откроются где угодно; не требуется Excel для просмотра или редактирования данных.
источник
read.xlsx()
и у вас есть последние версии этого пакета и R, отправьте электронное письмо сопровождающему пакета, чтобы сообщить о потенциальной ошибке.Пример 2012:
library("xlsx") FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F) SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
Пример 2015:
library("readxl") FirstTable <- read_excel("MyExcelFile.xlsx", 1) SecondTable <- read_excel("MyExcelFile.xlsx", 2)
readxl
и имею хороший опыт работы с ним.источник
Этот новый пакет выглядит красиво http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf Он не требует rJava и для скорости использует Rcpp.
источник
Если вы столкнулись с той же проблемой и R выдает ошибку - не удалось найти функцию ".jnew" - просто установите библиотеку rJava. Или, если он у вас уже есть, просто запустите линейную библиотеку (rJava). Это должно быть проблемой.
Кроме того, всем должно быть ясно, что с файлами csv и txt легче работать, но жизнь нелегка, и иногда вам просто нужно открыть xlsx.
источник
gdata
я получаю сообщение о запуске.gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
Мне кажется, он должен открывать файлы xlsx, хотя, по общему признанию, я не тестировал его в последнее время ...gdata
версия 2.8.2 читаетxlsx
файлы сread.xls
функцией.Недавно я обнаружил функцию Шауна Уиллера для импорта файлов Excel в R после того, как понял, что пакет xlxs не был обновлен для R 3.1.0.
https://gist.github.com/schaunwheeler/5825002
Имя файла должно иметь расширение «.xlsx», и файл не может быть открыт при запуске функции.
Эта функция действительно полезна для доступа к работе других людей. Основные преимущества перед использованием функции read.csv:
Использование функции read.csv требует ручного открытия и сохранения каждого документа Excel, что отнимает много времени и очень утомительно. Поэтому использование функции Schaun для автоматизации рабочего процесса очень помогает.
Большое спасибо Шауну за это решение.
источник
Для меня пакет openxlx работал самым простым способом.
install.packages("openxlsx") library(openxlsx) rawData<-read.xlsx("your.xlsx");
источник
Какая у вас операционная система? Какую версию R вы используете: 32-битную или 64-битную? Какая версия Java у вас установлена?
У меня была аналогичная ошибка, когда я впервые начал использовать
read.xlsx()
функцию и обнаружил, что моя проблема (которая может быть связана или не связана с вашей; как минимум, этот ответ следует рассматривать как «попробуйте это тоже») была связана с несовместимостью пакета .xlsx с 64-битной Java. Я почти уверен, что для пакета .xlsx требуется 32-битная Java.Используйте 32-битный R и убедитесь, что установлена 32-битная Java. Это может решить вашу проблему.
источник
Приведенный выше комментарий должен был решить вашу проблему:
require("xlsx") read.xlsx("filepath/filename.xlsx",1)
после этого должен работать нормально.
источник
Вы можете сохранить несколько вкладок и дополнительную информацию о форматировании, если экспортируете файл электронной таблицы OpenDocument ( ods ) или более старый формат Excel и импортируете его с помощью программы чтения ODS или программы чтения Excel, о которой вы упоминали выше.
источник
Как здесь многие говорят, я пишу то же самое, но с дополнительным пунктом!
Сначала нам нужно убедиться, что в нашей R Studio установлены эти два пакета:
Чтобы загрузить пакет в R, вы можете использовать следующую функцию:
install.packages("readxl/XLConnect") library(XLConnect) search()
search отобразит список текущих пакетов, доступных в вашей R Studio.
Теперь еще одна загвоздка, даже если у вас могут быть эти два пакета, но вы все равно можете столкнуться с проблемой при чтении файла «xlsx», и ошибка может выглядеть как «ошибка: столбцов больше, чем имя столбца»
Чтобы решить эту проблему, вы можете просто повторно сохранить лист Excel "xlsx" в
и твоя жизнь будет супер легкой ....
Радоваться, веселиться!!
источник
Я очень старался ответить на все приведенные выше ответы. Однако на самом деле они не помогли, потому что я использовал Mac. В rio имеет эту функцию импорта, которая может импортировать любой тип файла данных в Rstudio. , даже если этот файл использует языки, отличные от английского!
Попробуйте коды ниже:
library(rio) AB <- import("C:/AB_DNA_Tag_Numbers.xlsx") AB <- AB[,1]
Надеюсь на эту помощь. Для более подробной информации: https://cran.r-project.org/web/packages/rio/vignettes/rio.html
источник