본문 바로가기

Research & Analysis/R

[R/ split 함수] 나눠봅시다. split! split (x, f, drop = FALSE, ...) x 를 f 를 기준으로 나눈 것을 list 형태로 반환한다. ex)split(iris[, iris[,5]) / iris[,5] 를 기준으로 iris를 나눠준다. list 형태로 반환하기 때문에, split의 결과를 lapply에 적용할 수 있다. lapply(split(airquality, airquality[['Month']]), colMeans, na.rm = T)sapply(split(airquality, airquality[['Month']]), colMeans, na.rm = T) 하지만 tapply 를 적용할 수 있는 경우도 있다. 더보기
[R / Loop Functions] For를 쓰지 않고 반복작업을 해보자. 보통 for, while, repeat 등등을 통해 반복문을 작성하지만, R에서는 다른 스타일을 좀 더 선호한다. 코드가 간결해지고 짧아지는 장점!이 크다 (속도 차이는 거의 없다고 하지만..) apply 계열의 loop function이 그 역할을 하는데 크게 다섯 가지가 있다. 1. lapply (X, FUN, ...)list X 의 모든 element 에 대해 FUN을 적용할 때 사용한다.... 에는 FUN에 넘겨줄 인자들을 넣는다.결과값도 list 형태다. ex)x 더보기
[R] 큰 데이터를 읽을 때 습관 들이기: 클래스를 미리 알자 (read.table) read.table은 R에서 데이터를 불러올 때 자주 쓰는 함수인데, 큰 데이터를 무턱대고 불러온다면 한참동안 로딩을 해야 한다.이는 여러 가지 이유가 있는데, ?read.table 을 통해 도움말을 한번 읽는 것이 그 이유를 이해하는데 큰 도움이 된다. 간단하지만 효율적인 팁으로, 데이터의 일부분을 불러와 각 변수의 class를 정하는 것인데, 모든 데이터를 분석해 class를 정하는 것과 비교해 class가 정해져있을 때 데이터를 로드하는 속도가 월등히 빠르기 때문이다. 아래의 코드를 보면서 적용해보자. class_table 더보기
[R] read.dta 가 안 먹힐 때 (stata 파일 불러오기) stata의 데이터파일인 dta를 불러올 때 많이 사용하는 함수는 foreign 패키지에 있는 read.dta 함수이다.그런데 이 함수는 stata 버전이 13을 넘어가면 다음과 같은 애러를 뱉으며 작동하지 않는다. not a Stata version 5-12 .dta file 이럴 때는 readstata13 패키지를 설치한 후, read.dta13 으로 파일을 불러오면 문제없이 읽을 수 있다. 더보기
[R] windows 에서 디렉토리 경로 설정할 때 주의점 getwd 나 setwd, 혹은 각종 file in/out 에서 경로와 파일명을 잘 써주어야 코드가 오류 없이 작동한다. 리눅스 식으로 표현하면 상대 경로는 / (루트)혹은 ./ (현재 위치)혹은 ../ (현재 위치의 상위 )으로,절대경로는 /디렉토리/디렉토리 의 식으로 표현할 수 있는데, 윈도우는 슬래시의 방향이 바뀌어야 한다. 즉, \ (루트), .\ (현재 위치), ..\ (현재 위치의 상위) 로 표현이 되는 것이다. 그런데 여기까지 해도 경로가 설정이 안 되는데, \를 특수문자를 불러오는 기호로 인식해서이다.그래서 \를 두 번씩! 입력해주어야 한다. 최종적으로 \\, .\\, ..\\ 의 식으로 말이다. 더보기
[R] 설치된 패키지 리스트 뽑아내기 R을 새로 깔아야 할 때, 패키지를 전부 새로 설치하는 게 큰 일이다. 리스트를 길게 뽑아주면, 한 번에 설치할 수 있을텐데..는 역시 함수가 만들어져 있다! ip 더보기
필수패키지모음 "devtools","installr","reinstallr","readxl","googlesheets","RMySQL","MonetDBLite","readr","rio","psych","sqldf","jsonlite","XML","httr","quantmod","rvest","dplyr","plyr","reshape2","tidyr","validate","data.table","stringr","lubridate","zoo","editR","knitr","listviewer","DT","ggplot2","ggiraph","dygraphs","googleVis","metricsgraphics","RColorBrewer","leaflet","choroplethr","tmap","fitbitScraper",.. 더보기
[R/base plotting system] pch 종류를 알아보자 R에서 가장 쉽게 그래프를 그릴 때 쓰는 base plotting system에선 pch 값을 바꿔 모양을 변환할 수 있는데, 기본값인 빈 네모는 너무 못 생겼다. pch = "*" 식으로 character를 줄 수도 있고, 이미 지정된 녀석들을 숫자로 불러올 수도 있다. 자세한 건 아래를 보자. 더보기
RStudio 에서 Help가 안될 때 업데이트하고 RStudio 에서 Help를 치면 다음과 같은 응답이 콘솔에 뜨면서 브라우져로 넘겨버린다. rstudio Error in (function () : attempt to apply non-function 그럴 땐, RStudio 홈페이지에 가서 새 버전을 받자 (check for update하면 없다고 뜨는데 홈페이지 가면 있는 게 함정..) 참 쉽죠? 더보기
RStudio 에서 R 3.1.3 업데이트하기 R 3.1.3 이 나왔다. 여러 가지 버그 패치가 목적으로, 3.2 (4월 중 릴리즈 예정) 로 가기 전 마지막 패치가 될 듯 하다.(자세한 내용은 여기로) RStudio에서 패치를 진행하기 위해선 다음과 같이 하면 된다. 콘솔에서1. install.packages('installr')2. library(installr)3. updateR() 이러면 다운로드와 함께 알아서 진행된다. 중간중간에 이전 버전에서 사용 중인 라이브러리를 복사하는 부분만 잘 해주면 무리없이 설치할 수 있다. 다만 전 버전은 수동으로 삭제해주어야 한다. 더보기