7장 데이터 불러오기, curl으로 웹에서 Baltimore camera 데이터를 읽어오는 부분을 진행하고 있습니다.
실습 하다가 에러가 나거나 잘 안되는 부분이 있어서 문의글을 올립니다.
1. curl 명령어 관련
책의 설명대로 download.file(fileUrl, destfile = "./data/cameras.xlsx", method = "curl")을 실행하면 아래 오류 메세지가 나옵니다.
Warning messages:
1: running command 'curl "https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD" -o "./data/cameras.csv"' had status 127
2: In download.file(fileUrl, destfile = "./data/cameras.csv", method = "curl") :
다운로드의 종료상태(exit status)가 0이 아닙니다.
이 문제는 install.packages("RCurl"), library(RCurl)을 실행해주고,
download.file(fileUrl, destfile = "./data/cameras.xlsx", method = "libcurl")으로 하여 해결했습니다.
2. 책의 문구는 'cameras.xlsx 파일로 저장한다.'라고 되어 있는데 바로 아래 코드에는 destfile = "./data/cameras.csv"으로 되어 있습니다.
다운로드는 csv 형식으로 하면 엑셀로 에러 없이 잘 열리는데 xlsx으로 하면 열 때 에러가 나옵니다.
3. Baltimore cameras.csv 파일을 read.xlsx 명령어로 읽을려고 하면 아래 에러가 나옵니다.
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream
4. Baltimore cameras.csv 파일을 엑셀로 열고 일부 행을 복사하여 새로 만든 엑셀 파일에 붙여넣고 이 파일을 read.xlsx 명령어로 읽으니 에러 없이
잘 됩니다.
결론적으로는 curl 할때 xlsx 형태로 제대로 저장이 안되서 생기는 문제인 것 같은데, 책에 있는 curl이 안되서 libcurl을 대신 이용하여 생기는 문제인지는
확실치가 않네요. 조금 더 찾아봐야겠습니다.
※ 기타 사항으로 xlsx 패키지 설치할 때 jdk 1.8이 설치된 상태에서는 에러가 나고, jdk 1.6을 설치하니 제대로 설치가 됩니다.(윈도우7 64비트 환경입니다.)
Comment 4
-
cardiomoon
2015.08.28 00:50
-
김브링이
2015.08.28 00:58
책 검토 하시는데 도움이 되었으면 좋겠습니다. 다른 부분 실습 하다가 잘 안되는 부분이 있으면 다시 문의 하도록 하겠습니다 ㅎㅎ
-
김브링이
2015.08.29 06:54
해당 실습은 바로 뒷 장에 나오는 csv 파일을 엑셀 파일로 변환하는 방법으로 진행 했습니다.
아래 방법으로 cameras.csv 파일을 cameras.xlsx 파일로 변환 했습니다.
> require(xlsx)
> cameraData = read.csv("./cameras.csv")
> write.xlsx(cameraData, "./cameraData.xlsx", row.names = FALSE)
변환하고 엑셀 파일의 특정 열과 특정 행 읽기 부분을 진행하니 잘 됩니다.
> colIndex <- 2:3
> rowIndex <- 1:4
> cameraDataSubset <- read.xlsx("./cameras.xlsx", sheetIndex = 1, colIndex = colIndex, rowIndex = rowIndex)
> cameraDataSubset
direction street
1 N/B Caton Ave
2 S/B Caton Ave
3 E/B Wilkens Ave
-
Ben
2015.12.17 18:20
위의 사항에 추가로
require(xlsx) 수행시
필요한 패키지를 로딩중입니다: xlsx필요한 패키지를 로딩중입니다: rJavaError : .onLoad가 loadNamespace()에서 'rJava'때문에 실패했습니다:호출: dirname(this$RuntimeLib)에러: a character vector argument expectedFailed with error: ‘패키지 ‘rJava’는 로드되어질 수 없습니다’위의 경우, Java Runtime Library를 못 찾는 경우이며, 정확한 jre의 Directory를 찾아서 아래와 같이 입력하면 됨.Sys.setenv(JAVA_HOME='C:/Program Files/Java/jdk1.8.0_45/jre')> require(xlsx)필요한 패키지를 로딩중입니다: xlsx필요한 패키지를 로딩중입니다: rJava필요한 패키지를 로딩중입니다: xlsxjars>Sys.setenv(JAVA_HOME='C:/Program Files/Java/jdk1.8.0_45/jre') #추가 명령어
- Total
- 의학논문 작성을 위한 R통계와 그래프
- R을 이용한 조건부과정분석
- 웹에서 클릭만으로 하는 R통계분석
- Learn ggplot2 Using Shiny App
- 일반화가법모형 소개
- 밑바닥부터 시작하는 ROC 커브 분석
- 웹R을 이용한 통계분석
- 의료인을 위한 R 생존분석
No. | Subject | Author | Date |
---|---|---|---|
13 | ggBidirectionalBar.R | cardiomoon | 2016.05.22 |
12 | 인구피라미드 : Bidirectional Barplot | cardiomoon | 2016.05.22 |
11 | Radar Chart | cardiomoon | 2016.05.20 |
10 | ggRadar.R | cardiomoon | 2016.05.20 |
9 | Rose plot with ggplot2 [1] | cardiomoon | 2016.05.10 |
8 | Pie plot과 Donut plot의 결합 [2] | cardiomoon | 2016.05.08 |
7 | 책에 있는 R code 만 추출한 R 파일입니다. [1] | cardiomoon | 2016.05.03 |
6 | 교재 예제자료 [2] | 통계마술사 | 2016.01.18 |
5 | Error in chisq.test(mytable) [2] | se2cheeese | 2015.10.16 |
4 | 웹에서 하는 ggplot2 강의록 [2] | cardiomoon | 2015.10.15 |
3 | 책 154페이지 관련 내용입니다. [2] | 김브링이 | 2015.10.13 |
» | 책 148 페이지 관련 질문입니다. [4] | 김브링이 | 2015.08.27 |
1 | 2015년 대한민국학술원 우수학술도서에 선정 [8] | cardiomoon | 2015.05.15 |
네 질문이 아니시고 지적사항이시네요...ㅎㅎ 2쇄는 이미 인쇄해서 배포중이니 3쇄 인쇄때는 검토해서 수정하겠습니다. 감사합니다.