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 |
---|---|---|---|
33 | 2판 출판 예정일 문의 [2] | pslee | 2024.01.23 |
32 | 2판 혹시 언제쯤 출간 예정일지요? [1] | 니콜라오 | 2023.10.13 |
31 | 2판 [1] | rlagurrn | 2023.01.27 |
30 | mytable 문의 [2] | 떠도는고라니 | 2022.12.20 |
29 | R을 이용한 조건부과정분석 문의드려요. | sophiachoi | 2022.03.05 |
28 | 제2판 출간소식을 기다립니다.. [1] | swpapa | 2021.04.05 |
27 | 책 구매 하려고 하는데 품절이 되서 구매할수 있는지 궁금합니다. [1] | 기드온 | 2020.07.30 |
26 | 메타분석 강의록 | cardiomoon | 2020.05.31 |
25 | 설문조사데이터 | cardiomoon | 2020.05.08 |
24 | 데이터 전처리 예제 | cardiomoon | 2020.05.08 |
23 | 일반화가법모형에 관하여 정리를 해보았습니다 | cardiomoon | 2020.04.02 |
22 | 혹시 책을 이제는 더이상 살수 없나요? [2] | yosep.chong | 2019.07.15 |
21 | mytable과 mycph에서 [1] | 라시드 | 2018.12.14 |
20 | mytable 이용시 error in data.frame [3] | 우각차단 | 2017.07.18 |
19 | 설문조사 데이터 (성빈센트병원) [2] | cardiomoon | 2017.04.20 |
18 | p147 require(xlsx) 안됩니다 [1] | KCRS_LeeJM | 2017.03.16 |
17 | moonbook package 설치에 문제가 있는 건가요? [2] | KCRS_LeeJM | 2017.03.14 |
16 | 해결되지 않는 레이텍, ztable, moonbook2에 대해 질문 드립니다. [1] | neurojang | 2017.01.04 |
15 | 오자 [1] | 서울성모부정맥 | 2016.07.06 |
14 | Interactive plot with ggplot2 and ggiraph [1] | cardiomoon | 2016.05.25 |
네 질문이 아니시고 지적사항이시네요...ㅎㅎ 2쇄는 이미 인쇄해서 배포중이니 3쇄 인쇄때는 검토해서 수정하겠습니다. 감사합니다.