글

RScript 사용 팁

R의 최대 약점 중 하나는 '멀티쓰레딩'입니다. 작업을 분할해서 하기가 어렵다는 뜻입니다. 연산작업이야 MRO가 알아서 척척 잘 해주니 별 문제가 없는데 웹 크롤링 작업 등을 하려면 아무래도 멀티쓰레딩이 생각납니다. 프로그램을 나만 사용하고, 딱 정해져 있는 목적이 있다면 사실... 멀티쓰레딩보다는 CMD 여러 개 동시에 쓰는 것이 속 편합니다. R을 실행할 때 RStudio를 많이 쓰시지요? 그런데 CMD 환경에서도 R을 쓰려면 불편합니다. Rscript는 이와 같은 문제를 해결하기에 딱입니다. 우선, R의 bin 경로가 Windows의 PATH로 잡혀 있다는 가정 하에... C:\> RScript execution.R 10 20 이렇게 합시다. 다음은 execution.R의 내용입니다. args = commandArgs(trailingOnly = TRUE) a1 = as.numeric(args[1]) a2 = as.numeric(args[2]) cat("The result is",a1+a2,"\n") RScript는 execution.R을 실행합니다. 그리고 10과 20을 각각 첫번째와 두번째 인자로 넘깁니다. R에서 인자들을 받으려면 commandArgs()를 실행합니다. 받을 때는 '문자'로 받습니다. 쉽죠?

웹페이지 읽어오기 가이드

정말 오랫만에 글을 씁니다. 그간 여유가 좀 없었기도 하지만, 코딩할 계기도 별로 없었습니다. 반성... 요즘 논문 작업 때문에 다시 웹을 만지작 거리고 있습니다. 일을 하던 중에 여러분도 잘 모르겠다는 생각이 드는 것이 있어서 그것을 가지고 글을 씁니다. 오늘의 주제는 "User-Agent!". 웹 페이지를 크롤링하면 반드시 User-Agent를 남겨야 합니다. 예의..에 해당되기도 하고 서버에서 여러분을 거부하는 사태를 사전에 조금이나마 막을 수 있는 방법이기도 합니다. R은 여러 패키지로 이루어져 있습니다. 그런데 User-Agent를 컨트롤 하기는 조금 복잡합니다. 웹을 검색해보면 여러 대안들이 나오지만, 엉터리도 좀 있고 해서 제가 정리해보겠습니다. 일단, 여러분 브라우저에 다음과 같이 입력해서 결과를 보세요. http://httpbin.org/user-agent 저 같은 경우에 결과가 {   "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36" } 이렇게 나옵니다. 이것이 User-Agent입니다. R의 httr 페키지는 user_agent를 다루는 함수를 포함하고 있습니다. 예를 들어, R> header = httr::user_agent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36") 이렇게 하면 User-Agent를 알려주는 헤더를 작성합니다. GET()명령어를 써서 서버에 request를 합시다. R> request_result = httr::GET("http://www.naver.co...

Hubona의 PLS GUI

다운로드 링크 -> PLS_GUI Geoffrey Hubona가 R을 바탕으로 한 PLS GUI 소스코드를 공개했습니다. 보다 자세한 사항은 첨부 파일을 참고하세요.

Smart Connected World 2016 - Harvesting Web Data Tutorial Link

Dear friends, The following link contains my presentation @ Smart Connected World 2016 Tutorial at Suwon, Korea. https://goo.gl/kchz1Z I hope this short and simple tutorial will be helpful in saving your precious time. Best, Tae Kyung.

Progress Bar (Windows)

이미지
코드를 실행하는 과정을 관찰하려면 프로그레스바(Progress Bar: PB)가 필요하지요? R의 윈도우 버전에는 winProgressBar()와 setWinProgressBar() 함수가 준비되어 있어요. 먼저 > pb = winProgressBar(title="Example progress bar", label="0% done", min=0, max=100, initial=0) 프로그래스바 객체인 pb를 만듭니다. 타이틀과 라벨을 정해주고, 최소 최대값도 준 다음, 최초 값도 지정합니다. >for(i in 1:100) { +  Sys.sleep(0.1) +  info <- sprintf("%d%% done", i) +  setWinProgressBar(pb, i, label=info) } 라벨에 info 값을 업데이트하고, 새로운 값인 i를 pb에 넣기 위해 setWinProgressBar() 함수를 사용합니다. 이제 다 끝났으면 > close(pb) 창을 닫으면 된답니다.

Microsoft R Open을 설치해야 할 이유

여러분이 연구자라면 R의 기본 패키지가 아닌 Microsoft의 R Open을 설치하기를 권합니다. 이 패키지를 성공적으로 설치하면 멀티쓰레드를 작동시키기 때문에 퍼포먼스가 좋아집니다. 4코어를 기준으로 기존의 R 보다 많게는 약 100배 가량 속도 향상이 있는 것으로 보고 되었습니다. MRAN 다운로드 페이지 윈도우 유저는 두 가지를 설치해야 합니다. 우선 MRAN Open을 설치하고 RevoMath를 설치합니다. 두 프로그램이 모두 설치되면 수학연산도 빠르고, 멀티코어도 자동으로 작동합니다. 이제 RStudio와 같은 IDE를 설치하면 됩니다.

문자 단위의 날짜에서 요일 데이터 구하기

df = data.frame(date=c("2012-02-01", "2012-02-01", "2012-02-02")) df$day <- weekdays(as.Date(df$date)) df ##         date       day ## 1 2012-02-01 Wednesday ## 2 2012-02-01 Wednesday ## 3 2012-02-02  Thursday