R/Basic(10)
-
시간형 자료를 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 -
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 -
데이터를 클립보드에 읽고 쓰기
항목 수량 사과 5 키위 16 미트볼 40 웹에서 위와 같은 테이블을 긁어오는 상황을 가정해 보자 read.table함수를 사용하면 테이블 그대로 긁어올 수 있다 html.table readClipboard() [1] "항목\t수량" "사과\t5" "키위\t16" "미트볼\t40" > inventory inventory [1] "항목\t수량" "사과\t5" "키위\t16" "미트볼\t40" 엑셀에서 복사한 내용도 동일하게 불러들일 수 있다 excel.table
2019.04.28 -
폴더에서 파일 리스트 가져오기
자신의 컴퓨터에 저장된 특정 폴더의 파일 리스트를 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-..
2019.04.27 -
정규 표현식
일반 표현 기호 역할 예제 ^ 패턴의 시작 [ ... ] 문자의 범위 지정 { 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..
2019.04.22