[r] R, xlsx 또는 xls로 Excel 파일 가져 오기

누군가가 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)

감사합니다.



답변

이상한 외부 종속성 *이없는 솔루션의 경우 다음이 있습니다 readxl.

readxl 패키지를 사용하면 Excel에서 R로 데이터를 쉽게 가져올 수 있습니다. 많은 기존 패키지 (예 : gdata, xlsx, xlsReadWrite)에 비해 readxl에는 외부 종속성이 없으므로 모든 운영 체제에서 쉽게 설치하고 사용할 수 있습니다. 단일 시트에 저장된 테이블 형식 데이터로 작동하도록 설계되었습니다.

Readxl은 레거시 .xls 형식과 최신 xml 기반 .xlsx 형식을 모두 지원합니다. .xls 지원은 with libxls C 라이브러리를 가능하게하여 기본 바이너리 형식의 많은 복잡성을 추상화합니다. .xlsx를 구문 분석하기 위해 RapidXML C ++ 라이브러리를 사용합니다.

다음과 같이 설치할 수 있습니다.

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")

* 엄격히 사실이 아닙니다. Rtools (Windows 용) 또는 Xcode (OSX 용)가 필요한 Rcpp패키지 가 필요합니다 . 이는 R 외부의 종속성입니다. 그러나 경로 등을 조작 할 필요가 없습니다. Java 및 Perl 종속성보다 유리합니다.

업데이트 이제 rexcel 패키지가 있습니다. 이를 통해 Excel 파일에서 R로 Excel 서식, 기능 및 기타 여러 종류의 정보를 얻을 수 있습니다.


답변

XLConnect 패키지를 사용해 볼 수도 있습니다. xlsx보다 운이 좋았습니다 (.xls 파일도 읽을 수 있음).

library(XLConnect)
theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)

또한 파일을 찾을 수없는 경우 파일을 선택하십시오. file.choose ().


답변

나는 확실히 패키지 의 read.xls기능을 시도 할 것인데 gdata, 이는 xlsx패키지 보다 훨씬 더 성숙 합니다. Perl이 필요할 수 있습니다 …


답변

최신 정보

아래 답변은 이제 다소 구식이므로 readxl 패키지에 주의를 기울일 것 입니다. Excel 시트의 형식이 잘 지정되어 있거나 정리 되어 있으면 이제 readxl 을 사용 하여 통합 문서에서 읽습니다. 시트의 형식이 잘못 지정 read.csv()되거나 배치 된 경우 여전히 CSV로 내 보낸 다음 R에서 문제를 처리합니다 readLines().

실물

내가 선호하는 방법은 개별 Excel 시트를 쉼표로 구분 된 값 (CSV) 파일로 저장하는 것입니다. Windows에서 이러한 파일은 Excel과 연결되어 있으므로 두 번 클릭하여 Excel에서 열기 “기능”을 잃지 않습니다.

CSV 파일은를 사용하여 R로 읽을 수 있으며 read.csv(), 특정 위치에 있거나 일부 유럽 설정 ( ,소수점으로 사용되는 곳)으로 설정된 컴퓨터를 사용하는 경우 read.csv2().

이러한 함수에는 적절한 형식의 파일을 간단하게 읽을 수있는 합리적인 기본값이 있습니다. 첫 번째 행 또는 열에 샘플 또는 변수에 대한 레이블을 유지하십시오.

CSV로 파일을 저장하는 추가 이점은 파일이 일반 텍스트이므로 매우 쉽게 전달할 수 있고 어디서나 열 수 있다는 확신을 가질 수 있다는 것입니다. 데이터를 보거나 편집하기 위해 Excel이 필요하지 않습니다.


답변

예 2012 :

library("xlsx")
FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F)
SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
  • 다루기 쉽고 충분히 성숙해 보이기 때문에 ‘xlsx’패키지를 사용해 보겠습니다.
  • 나를 위해 잘 작동했으며 Perl 또는 기타와 같은 추가 기능이 필요하지 않았습니다.

예 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를 열어야한다는 점을 모두에게 분명히해야합니다.