R(22)
-
R로 텔레그램봇에 메세지 보내기
텔레그램봇을 활용하면, R에서 수집한 정보를 외부에서 메신저를 통해서 확인할 수 있다. R 스크립트를 일정 시간마다 정기적으로 돌리면서 결과값을 보내거나, 혹은 특정 조건이 발견되었을 때 경고 메세지를 발송할 수 있다. 텔레그램 봇 생성하기 PC버전 텔레그램을 설치한 후 BotFather를 검색해서 채널에 들어간다 /newbot 명령을 입력한 후 새로운 봇을 생성한다 (봇의 이름은 반드시 bot으로 끝내야 하며 first_name과 username을 별도로 입력해줘야 한다 봇생성을 완료하면, API Token이라고 표시된 곳에 출력되는 값을 복사한다 install.packages('telegram.bot') library(telegram.bot) R에서 telegram.bot 패키지를 설치한다 bot =..
2019.06.02 -
ggmap을 사용하여 서울 지하철 역 위치 및 사용자 수 표시
서울 지하철역의 위치에 따른 역 사용자 수를 시각적으로 파악하려면 어떻게 해야 할까? 역의 위치 정보와 사용자 수 정보를 각각 획득한 후 ggmap을 통하여 분류하면 될 것 같다 우선 지하철 역의 주소를 찾아 보자 http://data.seoul.go.kr/dataList/datasetView.do?infId=OA-12035&srvType=A&serviceKind=1 불러오는 중입니다... 위 데이터를 불러온 후 역명, 호선, 주소를 가져온다 library(tidyverse) library(ggmap) library(readxl) ######################################### # import subway address setwd('e:/R_study') raw.subway =..
2019.05.07 -
시간형 자료를 lubridate로 관리하기
as.Date보다 손쉽게 시간형 데이터를 관리할 수 있는 패키지다 기본 포맷 ## 시간형을 선언하지 않으면 문자열로 인식한다 > '2019-05-06' %>% str chr "2019-05-06" ## as.Date로 시간형으로 선언할 수 있다. > as.Date('2019-05-06') %>% str Date[1:1], format: "2019-05-06" ## 형식을 지키지 않으면 시간으로 인식하지 못한다 > as.Date('20190506') Error in charToDate(x) : 문자열이 표준서식을 따르지 않습니다 ## 순서를 변경해도 인식하지 못한다 > as.Date('05-06-2019') [1] "0005-06-20" lubridate는 형식에 구애받지 않고, 사람이 일반적으로 상상할 ..
2019.05.06 -
ggmap으로 지도에 표시하기
요즘 공공 데이터로 다양한 자료들을 쉽게 접할 수 있다. 그 중에는 수치형 데이터 뿐 아니라 위치 기반형도 존재하는데, ggmap 패키지와 Google map API를 활용하면 R에서 간편하게 위치를 표시할 수 있다. 서울의 3개 프로구단이 홈구장으로 사용중인 고척 스카이돔과 잠실 야구장의 위치를 표시해 보자 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 우선, Google map의 데이터를 가져오기 위해서는 API를 발급 받아야 한다. 위 사이트에 가입을 하면 개인 학습 용도로는 무료로 사용가능한 사용권을 얻을 수 있다. (가입 시 결제 정보를 기입해야 하지만, 실제..
2019.05.06 -
RSelenium으로 뉴스 헤드라인 수집
서비스를 제공하는 쪽에서 웹 크롤링을 차단을 하거나, 데이터가 동적으로 변하는 경우 기존 방법 대신에 RSelenium을 사용하면 손쉽게 데이터를 수집할 수 있다. Selenium 설치 방법은 추후 업데이트 예정 library(RSelenium) library(rvest) library(tidyverse) remDR % mutate(length = str_length(value)) %>% filter(length > 0) %>% select(-length) %>% rename(title = value) hd.url % html_nodes('.hdline_article_tit > a') %>% html_attr('href') %>% as.tibble %>% mutate(length = str_length(..
2019.05.06 -
Tidyr의 gather와 spread
우리가 흔히보는 자료 테이블은 wide 형태를 취하고 있다 데이터 전처리 작업을 하다 보면 wide를 long으로 변환하거나 반대의 경우가 필요하다 Tidyr의 gather와 spread를 활용하면 테이블의 형태를 wide와 long으로 손쉽게 변환이 가능하다 (엑셀에서는 pivot 작업 ) library(tidyverse) library(reshape2) fried % as.tibble fried fried.long % gather("taste","value", 5:9) fried.long fried.wide % spread(taste, value, 5:6) fried.wide
2019.04.29