-
색상 조합 빠르게 만들어 내는 사이트
Paletton - The Color Scheme Designer Paletton, the color scheme designer In love with colors, since 2002. Paletton application Colorpedia About Paletton About Paletton Paletton.com is a designer color tool designed for creating color combinations that work together well. It uses classical col paletton.com 요즘 PPT 제작 시 강조되는 것이 색상 조합이다. 매번 적은 종류의 색상을 편안하게 조합하는 법을 외워서 쓰는 것이 쉬운 일이 아니다. Paletton이라는 사이..
-
fs 패키지로 여러 파일 한 번에 병합하기
동일한 포맷의 여러개 파일을 동시에 불러온 다음, 일일히 bind_rows (혹은 rbind)를 해야할 때가 있다. for 반복문으로 붙이는 경우가 종종 있는데, fs 패키지를 사용할 경우 한 번에 간단히 끝낼 수 있다. 전시 카테고리 총 0 개의 데이터가 있습니다. www.bigdatahub.co.kr SK 데이터 허브에서, 패밀리 레스토랑 이용에 대한 월간 데이터를 병합하는 상황을 가정해보자. 2018년 1월부터 2019년 4월의 데이터를 CSV 형태로 다운받아 한 폴더에 넣어둔다. 동일한 형태로 정리가 잘되어 있기 때문에, 데이터 프레임 형식을 손볼 필요는 없다. for 문을 사용하는 경우 library(tidyverse) dir = 'family_restaurant' files.list = pas..
-
태스크 스케쥴러로 자동으로 R 스크립트 실행하기
지난 포스트에 R에서 텔레그램봇으로 메세지를 보내는 방법을 업데이트 했었다. 만약, 일정 시간마다 내가 작업한 R 스크립트를 윈도우에서 자동으로 실행하고 그 결과를 텔레그램으로 보낼 수 있다면 실시간으로 상황을 확인할 수 있을 것이다. R로 텔레그램봇에 메세지 보내기 텔레그램봇을 활용하면, R에서 수집한 정보를 외부에서 메신저를 통해서 확인할 수 있다. R 스크립트를 일정 시간마다 정기적으로 돌리면서 결과값을 보내거나, 혹은 특정 조건이 발견되었을 때 경고 메세지를 발.. aworklab.tistory.com 이 번에 작업해볼 내용은 아래와 같다. 1. 네이버 야구 메인 페이지에 있는 뉴스 20개의 URL을 수집한다 2. URL을 텔레그램봇으로 자동 전송 한다 library(tidyverse) libra..
-
R에서 윈도우 폴더와 파일 다루기
현재 작업 폴더 정보와 작업 폴더 지정 # get current working directory getwd() # set working directory setwd("D:/r_study") > getwd() [1] "D:/r_study" > # set working directory > setwd("D:/r_study") 폴더 dir.create("new_folder") # 폴더 생성 unlink('new_folder', recursive = T) # 폴더 제거 파일 다루기 file.create('hey.txt') # 파일 생성 file.remove('hey.txt') # 파일 제거 file.create(paste0('file',1:100,'txt')) # 연속 파일 생성 file.remove(paste..
-
전국 렌터카 업종 통화량 위치 표시
데이터 기본 설명 Q&A Data에 대한 질문사항은 이메일로 문의해주세요. ※ 데이터 문의 이메일 : bigdatahub@sk.com www.bigdatahub.co.kr SK Datahub에서 제공하는 19년 4월 전국 렌터카 업종 이용 통화량 데이터를 활용하여 지역 및 크기를 표시해보자 지역 정보는 3가지로 이루어져 있다 [시도] - [군구] - [동면읍리] 일단 시도와 군구 두 가지만 합하여 처리해보자 library(tidyverse) library(lubridate) library(ggmap) x = read_csv('CALL_RENT_04MONTH.csv') x$date = ymd(x$date) focus = x %>% group_by(city, county) %>% summarise(n= n(..
-
R로 텔레그램봇에 메세지 보내기
텔레그램봇을 활용하면, R에서 수집한 정보를 외부에서 메신저를 통해서 확인할 수 있다. R 스크립트를 일정 시간마다 정기적으로 돌리면서 결과값을 보내거나, 혹은 특정 조건이 발견되었을 때 경고 메세지를 발송할 수 있다. 텔레그램 봇 생성하기 PC버전 텔레그램을 설치한 후 BotFather를 검색해서 채널에 들어간다 /newbot 명령을 입력한 후 새로운 봇을 생성한다 (봇의 이름은 반드시 bot으로 끝내야 하며 first_name과 username을 별도로 입력해줘야 한다 봇생성을 완료하면, API Token이라고 표시된 곳에 출력되는 값을 복사한다 install.packages('telegram.bot') library(telegram.bot) R에서 telegram.bot 패키지를 설치한다 bot =..
-
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 =..
-
시간형 자료를 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는 형식에 구애받지 않고, 사람이 일반적으로 상상할 ..
-
구글 스프레드시트로 geocode 변환하기
R에서 geocode를 사용하려면 Google Map API를 발급받고 별도의 코드를 입력해줘야 한다. 무료 모드일 경우 변환 횟수에도 사실상 제한이 있다. 구글 스프레드시트를 사용할 경우 보다 간편하게 주소를 위도와 경도로 변환할 수 있다. 구글 스프레드시트에서 문서를 생성한 후, 부가기능에서 부가기능 열기를 선택한다 부가기능 검색창에서 geocode를 입력 후 Geocode by Awesome Table을 선택한다 서울시 지하철역의 주소를 경도와 위도로 변환해 보자. 주사가 들어가 있는 열을 선택 후 부가기능 - Geocode by Awesome Table - Start Geocoding을 선택한다 Geocode!를 누르면 자동으로 변환된 위도와 경도 정보가 셀에 입력된다. 작업이 완료되면 해당 정보..
-
ggmap으로 지도에 표시하기
요즘 공공 데이터로 다양한 자료들을 쉽게 접할 수 있다. 그 중에는 수치형 데이터 뿐 아니라 위치 기반형도 존재하는데, ggmap 패키지와 Google map API를 활용하면 R에서 간편하게 위치를 표시할 수 있다. 서울의 3개 프로구단이 홈구장으로 사용중인 고척 스카이돔과 잠실 야구장의 위치를 표시해 보자 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 우선, Google map의 데이터를 가져오기 위해서는 API를 발급 받아야 한다. 위 사이트에 가입을 하면 개인 학습 용도로는 무료로 사용가능한 사용권을 얻을 수 있다. (가입 시 결제 정보를 기입해야 하지만, 실제..
-
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(..
-
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
-
데이터를 클립보드에 읽고 쓰기
항목 수량 사과 5 키위 16 미트볼 40 웹에서 위와 같은 테이블을 긁어오는 상황을 가정해 보자 read.table함수를 사용하면 테이블 그대로 긁어올 수 있다 html.table readClipboard() [1] "항목\t수량" "사과\t5" "키위\t16" "미트볼\t40" > inventory inventory [1] "항목\t수량" "사과\t5" "키위\t16" "미트볼\t40" 엑셀에서 복사한 내용도 동일하게 불러들일 수 있다 excel.table
-
폴더에서 파일 리스트 가져오기
자신의 컴퓨터에 저장된 특정 폴더의 파일 리스트를 R로 가져오기를 해보자 이미지 파일 일괄 다운로드 받기 웹에서 규칙성 있게 배치되어 있는 이미지를 한 번에 받아보자 네이버 스포츠의 현장 사진집에는 수십장의 사진이 올라가 있다 손으로 하나씩 다운로드 하려면 상당히 번거로운 작업이 기다리고 있다 국내야구,.. aworklab.tistory.com 이미지 일괄 받기를 할 때 생성한 폴더와 파일로 진행해보자 이 폴더에는 52개의 사진 파일이 들어가 있다. 하나씩 일일히 복사해서 가져오면 번거롭고 불편할 것이다. setwd("e:/R_study") pic.list % as.data.frame() pic.list write.csv(pic.list, 'pic_list.csv', fileEncoding = 'UTF-..
-
이미지 파일 일괄 다운로드 받기
웹에서 규칙성 있게 배치되어 있는 이미지를 한 번에 받아보자 네이버 스포츠의 현장 사진집에는 수십장의 사진이 올라가 있다 손으로 하나씩 다운로드 하려면 상당히 번거로운 작업이 기다리고 있다 국내야구, 생생화보, 포토센터 : 네이버 스포츠 롯데! 이겼다! sports.news.naver.com 한 페이지에 20장 씩, 총 3페이지로 구성되어 있다 규칙성을 찾아 보자 https://sports.news.naver.com/photocenter/photoList.nhn?category=kbo&type=theme&page=2&albumId=73412 앨범은 총 3페이지로 구성되어 있고, URL에서 하이라이트되어 있는 숫자가 1~3으로 변한다 //*[@id="content"]/div/div[1]/div/ul/li[..
-
emart 매장 정보 얻기
emart의 전국 매장 정보와 상태를 수집 점포찾기 > 메인 store.emart.com 매장 하나의 정보가 저장되는 node의 패턴은 아래와 같다 li:nth-child(5) 위 숫자가 1에서 399까지 존재한다 가장 많은 정보를 담고 있는 점포는 5개의 상황을 담고 있는 킨텍스점이다. 따라서 변수가 점포 이름을 포함하여 6개가 되어야 한다 #################################################### ## get function #################################################### url % as.tibble %>% separate(value, name, sep = '@') %>% as.tibble for(j in 1:6){ r..
-
a href에서 url 얻기
야구 : 네이버 스포츠 스포츠의 시작과 끝! sports.news.naver.com 네이버 스포츠 뉴스의 야구란에서, 노출되어있는 주요뉴스 중에 20개의 URL을 수집 element inspector 구조를 파악하면 아래와 같은 속성을 확인할 수 있다 div.home_news>ul.home_news_list home_news라는 class의 하위에 home_news_list ul(목록)으로 하위 구조가 형성되어 있고 그 하위 구조에 a href로 url 링크가 존재한다 사용한 패키지 library(rvest) library(tidyverse) url.bb % html_nodes('a') %>% html_attr('href') %>% as.tibble %>% mutate(url = paste0('https..
-
XPath를 활용한 베스트셀러 수집하기
RIDIBOOKS 최고의 eBook 서비스, 리디북스! 200만 권의 eBook, 특별반값 도서, 최신 베스트셀러에서 빌려보는 만화/판무/잡지, 내 문서파일 (PDF/TXT/ePub) 뷰어 기능까지! ridibooks.com 리디 북스의 월간 베스트 셀러 Top30을 수집 베스트 셀러는 [순위], [제목], [작가], [가격] 등의 정보가 기제되어 있다. 순위, 제목, 작가, 가격에 대하여 xpath 규칙성을 파악한다 # 순위 규칙 //*[@id="page_best"]/div[2]/div[2]/p //*[@id="page_best"]/div[2]/div[3]/p //*[@id="page_best"]/div[2]/div[31]/p # 제목 규칙 //*[@id="page_best"]/div[2]/div[2]..
-
Xpath를 활용한 MLB 타자 정보 수집
2019 Major League Baseball Season Summary | Baseball-Reference.com 2019 MLB Standings, Team and Player Statistics, Leaderboards, Award Winners, Trades, Minor Leagues, Fielding, Batting, Pitching, New Debuts www.baseball-reference.com MLB의 팀별 타자 정보를 데이터 형태로 가져와보자 팀별 타격 데이터는 테이블 형태로정리되어 있다 element inspector로 확인해보면 데이터 테이블의 id가 div_teams_standard_batting인 것을 알 수 있다 url.mlb % html_text() 결과물을 보면 테이블..
-
정규 표현식
일반 표현 기호 역할 예제 ^ 패턴의 시작 [ ... ] 문자의 범위 지정 { n } n개의 문자 n\d{3} : n위에 숫자가 3개 이상 {n, m} n ≤문자 갯수 ≤m { n, } n개 이상의 문자 ( ... ) 하나의 문자 인식 범위 * 이전 문자가 0 or ∞ n\d* : n뒤에 숫자가 0개 이상 + 이전 문자가 1개 이상 n\d+ : n뒤에 숫자가 1개 이상 ? 이전 문자가 0 or 1 apples? : s는 있을 수도 없을 수도 . 임의의 한문자 $ 패턴의 종료 (?!) 대소문자를 구분하지 않음 \s 공백문자 \S 공백이 아닌 나머지 문자 \w 알파벳 or 숫자 \W 알파벳 or 숫자가 아닌 나머지 문자 \d [0-9] \D 숫자를 제외한 문자 | 패턴 안에서 or 연산 (txt|pdf|hw..
-
행렬 생성, 호출
box box [1] 5 10 1 8 7 12 4 11 3 6 2 9 dim(box) box [,1] [,2] [,3] [,4] [1,] 5 8 4 6 [2,] 10 7 11 2 [3,] 1 12 3 9 이미 생성되어 있는 벡터를 행렬 단위로 변환 dim(x) x x [1] 11 22 33 44 > x x [1] 11 22 33 55 44 > length(x) [1] 5 length(x) → 행렬의 원소 갯수를 반환 fly c(1, 2, 3) + c(10, 11, 12, 13, 14, 15) [1] 11 13 15 14 16 18 행렬 A의 길이가 행렬 B보다 짧을 경우, 두 행렬을 더 할경우 A의 원소를 B의 원소에 순차적으로 대응 시킨 후, A를 처음부터 다시 B의 나머지 원소에 대응 > x [1] ..
-
조건문, 반복문
조건문 if - else x 1){ print("x > 1") }else{ print("x 1" ifelse x 1, "X > 1", "X 1" 반복문 for x
-
Tidyr을 활용한 데이터 정리
목적 DSR 패키지에 포함된 데이터셋으로 정돈된 데이터 연습 다른 패키지와 tidyr의 함수 대응 관계는 아래와 같다 reshape2의 melt와 dcast는 tidyr의 gather와 spread로 대체 가능하다 tidyr gather spread reshape2 melt cast spreadsheets unpivot pivot databases fold unfold 사용한 패키지 library(tidyverse) library(DSR) TB를 포함한 table1~6에서 Spread와 Gather사용 > table1 # A tibble: 6 x 4 country year cases population 1 Afghanistan 1999 745 19987071 2 Afghanistan 2000 2666 2..
-
Ninite.com : 필수 프로그램 한 번에 설치
업무 컴퓨터를 옮기거나 포맷을 했을 때 항상 사용하던 프로그램을 다시 까는 번거로움을 한 번에 해결하는 법 Ninite - Install or Update Multiple Apps at Once As of February 14th, 2019 Ninite has ended support for Windows XP and Windows Vista as well as the related server platforms Server 2003 and Server 2008. You'll need to upgrade your Windows version to continue using Ninite. ninite.com 사용 방법 한 번 생성된 인스톨러는 어느 곳에서도 사용 가능하다 한국에서 주로 사용하는 소프트웨어는..
-
세상빠른 그래프 만드는 사이트
엑셀로 그래프 찍어내기 힘들고 귀찮은데... 한 번에 괜찮은거 찍어내는 방법이 없을까? FastCharts.io fastcharts.io CSV, TSV 형식의 데이터를 입력 샘플 데이터
-
ggplot2 기초
Data Visualiation의 필수 도구 기본 함수보다는 복잡하지만, 엑셀에도 구현하기 힘든 퀄리티와 복잡한 그래프를 순식간에 생성해 낸다 Create Elegant Data Visualisations Using the Grammar of Graphics A system for 'declaratively' creating graphics, based on "The Grammar of Graphics". You provide the data, tell 'ggplot2' how to map variables to aesthetics, what graphical primitives to use, and it takes care of the details. ggplot2.tidyverse.org 설치 이 쪽..
-
R 설치
R 프로그램 설치 https://www.r-project.org R: The R Project for Statistical Computing The R Project for Statistical Computing Getting Started R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS. To download R, please choose your preferred CRAN m www.r-project.org 1. R Project 사이트 접속 2. C-Ran → Download → Ko..
-
SQL Join
결국 Left Join 인가
-
Great R Packages
R에서 유명한 패키지 모음 내가 많이 쓰는 패키지들은 readxl : 엑셀 읽을려면 필수 fst : 기가 단위의 csv 읽고 쓰기의 신 rvest : 크롤링 필수 dplyr, tidyr, ggplot2, stringr = tidyverse : 신의 툴
- Data fitting