Data Analysis/R
-
[R] xmlToDataFrame()을 이용하여 xml 문서 파싱하기Data Analysis/R 2024. 1. 21. 20:47
Table of Contents Introduction XML library xmlToDataFrame 함수 Reference Introduction 웹에 게시된 데이터를 가져오기 위해 크롤러를 만들거나 API를 사용해서 데이터를 수집한 경우 xml 형태로 데이터가 오게 되고 이런 데이터를 깔끔하게 정리하지 않으면 바로 분석에 사용하기 어렵다. 따라서 xml을 테이블 형태로 파싱할 수 있는 기능을 구현해야 하지만 그 때 그때 만들기가 쉽지 않다. XML library 주로 XML 문서를 읽거나 생성하기 위해 많이 사용하는 라이브러리 중 하나로 R에서 데이터를 크롤링하여 사용하거나 API를 호출해서 데이터를 수집할 경우 데이터를 파싱하기 위해 사용하는 라이브러리 중 하나이다. CRAN Team이 주도하여 ..
-
[R] WARNING: Rtools is required to build R packagesData Analysis/R 2023. 3. 29. 22:43
Table of Contents Introduction Rtools 경고 메시지 원인 조치 방법 Reference Introduction 최초로 특정 환경에 설치한 후에 R패키지를 설치할 경우 다음과 같은 경고 메세지가 나타나는 것을 왕왕 본적이 있을 것이다. 일단, 경고는 에러든 빨간색 글씨만 나타나면 치를 떨고 꺼버리고 싶은 심경일 것이다. 대부분의 프로그래밍 언어는 해결하는 방식을 가이드하고 있다. 다만, 영어로 써있다는 점이 한국에서 코딩을 하는 사람들에게 굉장히 불편하게 다가오긴 한다. Rtools 경고 메시지 원인 Warning 뒤에 현재 R 버전에 맞게 동작하는 Rtools가 설치 되어 있지 않아서 설치해야만 한다고 나타난다. 현재 설치된 Rtools는 3.5이다. 이 글을 작성하고 있는 시..
-
[R] 클립보드 활용하여 데이터 불러오기Data Analysis/R 2022. 5. 8. 15:32
Table of Contents Introduction 클립보드를 활용하여 데이터 불러오기 Reference Introduction 업무 하는 과정에서 정보를 수집하다보면, 웹에 게시된 테이블 형식의 데이터를 가져오기 위해 크롤러를 만들거나 복사해서 엑셀에 하나씩 붙여 넣고 수정해야 하는 경우 복잡하고 귀찮게 한다. 이를 보다 쉽게 처리하기 위해 클립보드에 있는 정보를 불러와서 처리할 수 있다. 클립보드를 활용하여 데이터 불러오기 국가코드를 활용하기 위해 위키피디아의 국가코드 목록을 접속한 뒤 복사할 대상을 지정하고 복사한다. 이후, 다음 코드를 입력하고 실행하면 복사된 내용이 클립보드에 저장되고 다시 R에서 해당 내용을 출력할 수 있게 된다. # windows용 read.table("clipboard"..
-
[R] 오프라인 환경을 위한 R 라이브러리Data Analysis/R 2022. 2. 28. 17:19
Table of Contents Introduction 오프라인 환경에서 R 라이브러리 설치를 위한 함수 이해하기 사용자 함수를 이용하여 처리하기 R 라이브러리 설치하기 Introduction Introduction 기업 내부에 존재하는 데이터의 경우에는 보안을 민감하게 여기고 있기 때문에 외부망과 단절되어 있다. 이런 폐쇄망에서 시스템이 구성되어 있으며, 데이터가 저장되어 있는 데이터베이스가 내부망에 구성되어 있기 때문에 일반적으로 인터넷이 자유롭게 사용되는 환경에서처럼 R스튜디오를 운영할 수 없다. 이런 경우 외부에서 장비를 반입하기 전에 미리 분석 환경을 세팅하고 들어가거나 설치 파일을 USB 또는 CD에 담아서 들어가기도 한다. 오프라인 환경에서 R 라이브러리 설치를 위한 함수 이해하기 R과 R스..
-
[R] .libPaths()를 이용한 "package or namespace load failed" 조치Data Analysis/R 2021. 9. 10. 12:33
Table of Contents Introduction 패키지 설치 경로 탐색 함수, .libPaths() Reference Introduction 새로운 패키지를 설치하고 이를 실행시키는 과정에서 [그림 1]과 같이 설치 경로를 찾을 수 없다고 에러 메시지(package or namespace load failed for 패키지명)가 발생한다. 이럴 때마다 진행도 안되고 답답했던 경험이 있을 것이다. 패키지 설치 경로 탐색 함수, .libPaths() .libPaths() 함수는 패키지 설치 경로를 탐색하는 함수로, 경로 입력 없이 .libPath()만 입력할 경우에는 아래와 같이 결과가 나타난다. 경로를 입력할 경우에는 패키지 설치 경로를 지정할 수 있다. 이를 이용하면 앞에서 "package or ..
-
[R] system.time을 이용한 실행 속도 측정Data Analysis/R 2021. 8. 29. 19:05
Table of Contents Introduction 현재 시간을 출력하는 함수, Sys.time 코드의 실행 속도를 측정하는 함수, system.time Reference Introduction R을 이용한 프로그래밍을 수행해본 경험이 축적되면서 어떻게 하면 소스를 효율적으로 개발할 것인가 고민하게 된다. 프로젝트를 수행하면서 프로그램을 개발할 때에는 한정된 리소스를 이용하기 때문에 불필요한 소스 코드를 최소화하고 효율적으로 작성하기 위한 소스 튜닝 작업을 진행한다. R에서는 소스 코드를 실행했던 시간을 측정하기 위한 기본적인 함수가 있다. 이와 관련하여 작성한 함수보다 더 빠르고 효율적으로 작동할 수 있게 소스 실행 속도를 측정하기 위한 다양한 방법이 있다. 현재 시간을 출력하는 함수, Sys.ti..
-
[R] Sys.sleep을 이용한 속도 제한 이슈 해결Data Analysis/R 2021. 8. 29. 19:04
Table of Contents Introduction 코드 실행을 잠시 멈추는 함수, Sys.sleep Reference Introduction 코딩 업무를 수행하는 과정에서 내가 만든 코드를 실행할 때 에러가 발생하는 것 만큼 끔찍한 상황이 없다. 보통은 오타이거나 변수나 함수를 잘못 참조했기 때문에 발생할 것이다. 만약, API를 가이드 문서에 따라 사용했다면 더욱 당황스럽다. 코드 실행을 잠시 멈추는 함수, Sys.sleep API를 가져다가 쓸때 아래와 같는 에러를 본 적이 있을 것이다. API를 제공하는 회사에서 서버의 부담을 줄이기 위해 데이터 전송 건수를 제안했기 때문에 발생한다. 이를 해결하기 위해서 코드가 빨리 실행하는게 걸리는 시간을 줄여주는 것이 필요하다. 이때 사용하는 함수가 Sy..
-
[R] try, tryCatch를 이용한 예외처리Data Analysis/R 2021. 8. 29. 19:04
Table of Contents Introduction 에러를 무시하는 함수, try() 예외 처리하는 함수, tryCatch() Reference Introduction 2020년이 어느 덧 1시간도 안남았다. 코딩은 하면 할수록 어렵고 복잡하다. 특정 케이스를 입력할 때 내가 만든 로직은 항상 에러가 발생하기 마련인데 이때, 어떻게 해야 에러를 무시하고 처리할 수 있을까? 예전 프로젝트를 수행하는 과정에서 try() 함수를 접한 적이 있었는데, 이걸 활용했을 때 조건문 없이 예외처리를 할 수 있다는 점에서 매력적으로 느꼈다. 그 이후 데이터 분석을 하기 위해 크롤러를 만드는 과정에서 활용했다. R에서 변수가 정의가 안된 이름을 입력하고 엔터를 칠 경우 에러가 발생하는 것을 본적 있을 것이다. 이때, ..