iBetter Books
수정

Ch 01. R 데이터 분석 정리

교재 전체를 함께 달렸습니다. 복잡했던 개념도 있고, 생각보다 쉬웠던 부분도 있었을 겁니다. 이 챕터는 PART 1부터 PART 6까지 배운 핵심 함수와 개념을 한 곳에 모아두는 치트시트입니다. 실전에서 막힐 때 이 표를 먼저 펼쳐보세요.

PART 02. R 기초 문법 핵심 함수

함수 / 문법 설명 예시
<- 변수 할당 x <- 10
c() 벡터 생성 c(1, 2, 3)
length() 벡터 길이 length(x)
class() 자료형 확인 class(x)
is.na() 결측치 여부 is.na(x)
which() 조건 만족 인덱스 which(x > 5)
seq() 등차 수열 seq(1, 10, by = 2)
rep() 반복 벡터 rep(0, times = 5)
data.frame() 데이터프레임 생성 data.frame(a = 1:3, b = c("x","y","z"))
str() 구조 확인 str(df)
summary() 기술 통계량 summary(df)
nrow() / ncol() 행/열 수 nrow(df)
function() 함수 정의 f <- function(x) x^2
for / while 반복문 for (i in 1:10) { ... }
if / else 조건문 if (x > 0) "양수" else "음수"
apply() 행렬 방향 적용 apply(m, 1, sum)
sapply() 리스트 반환 단순화 sapply(lst, mean)

PART 03. tidyverse 핵심 함수

dplyr 데이터 조작

함수 설명 예시
filter() 행 필터링 filter(df, age > 20)
select() 열 선택 select(df, name, age)
mutate() 열 추가/변환 mutate(df, bmi = weight / height^2)
arrange() 행 정렬 arrange(df, desc(score))
summarise() 집계 summarise(df, mean_age = mean(age))
group_by() 그룹화 group_by(df, city)
rename() 열 이름 변경 rename(df, 나이 = age)
distinct() 중복 제거 distinct(df, city)
count() 빈도 집계 count(df, city)
slice_max() 상위 N행 slice_max(df, score, n = 5)
case_when() 다중 조건 변환 case_when(x > 80 ~ "우", x > 60 ~ "미", TRUE ~ "가")
across() 여러 열 동시 변환 mutate(across(where(is.numeric), round))

tidyr 데이터 형태 변환

함수 설명 예시
pivot_longer() wide → long pivot_longer(df, cols = -id)
pivot_wider() long → wide pivot_wider(df, names_from = year)
separate() 열 분리 separate(df, date, c("y","m","d"), sep = "-")
unite() 열 합치기 unite(df, full_name, first, last, sep = " ")
drop_na() 결측치 행 제거 drop_na(df, score)
fill() 결측치 채우기 fill(df, value, .direction = "down")

readr / readxl 파일 읽기

함수 설명 예시
read_csv() CSV 읽기 read_csv("data.csv", locale = locale(encoding = "EUC-KR"))
read_excel() Excel 읽기 read_excel("data.xlsx", sheet = 1)
write_csv() CSV 저장 write_csv(df, "output.csv")
col_types 인자 컬럼 타입 지정 read_csv("f.csv", col_types = cols(id = col_character()))

PART 04. ggplot2 핵심 geom

geom 함수 설명 주요 aes
geom_point() 산점도 x, y, color, size, shape
geom_line() 선 그래프 x, y, color, linetype, linewidth
geom_col() 막대 그래프 (값 지정) x, y, fill
geom_bar() 막대 그래프 (빈도 자동) x, fill
geom_histogram() 히스토그램 x, bins, fill
geom_density() 밀도 곡선 x, fill, alpha
geom_boxplot() 박스플롯 x, y, fill
geom_violin() 바이올린 플롯 x, y, fill
geom_tile() 히트맵 x, y, fill
geom_smooth() 추세선 method = "lm" / "loess"
geom_hline() 수평 기준선 yintercept
geom_vline() 수직 기준선 xintercept
geom_text() 텍스트 레이블 label, hjust, vjust
geom_ribbon() 영역 채우기 ymin, ymax, fill, alpha

ggplot2 핵심 레이어 함수

함수 설명 예시
labs() 제목·축 레이블 labs(title = "제목", x = "x축", y = "y축")
theme_minimal() 미니멀 테마 theme_minimal(base_family = "AppleGothic")
theme() 세부 테마 조정 theme(legend.position = "bottom")
facet_wrap() 소그룹 분할 패널 facet_wrap(~category, ncol = 2)
facet_grid() 행·열 분할 패널 facet_grid(rows ~ cols)
scale_x_date() 날짜 축 포맷 scale_x_date(date_labels = "%Y-%m")
scale_y_continuous() 연속형 y축 포맷 scale_y_continuous(labels = comma)
scale_fill_manual() 색상 수동 지정 scale_fill_manual(values = c(...))
coord_flip() x·y 축 교환 coord_flip()
ggsave() 그래프 저장 ggsave("plot.png", width = 8, height = 5)

PART 05. 공공데이터 분석 핵심 패턴

작업 함수·패턴 예시
한글 인코딩 읽기 locale(encoding = "EUC-KR") read_csv("f.csv", locale = locale(encoding = "EUC-KR"))
날짜 파싱 ymd(), parse_date_time() ymd("20240101")
문자열 정제 str_trim(), str_remove() str_trim(df$name)
숫자형 변환 parse_number() parse_number("1,234원")
결측치 확인 sum(is.na(x)) colSums(is.na(df))
이상치 탐지 사분위수 규칙 Q1 - 1.5 * IQR ~ Q3 + 1.5 * IQR
R Markdown 렌더링 rmarkdown::render() rmarkdown::render("report.Rmd")

PART 06. 금융 데이터 분석 핵심 함수

함수 / 패키지 설명 예시
tq_get() 주가 데이터 수집 tq_get("AAPL", get = "stock.prices")
getSymbols() xts 형식으로 수집 getSymbols("AAPL", src = "yahoo")
tq_transmute() 수익률 변환 tq_transmute(select = adjusted, mutate_fun = periodReturn)
tq_mutate() 기술 지표 추가 tq_mutate(select = adjusted, mutate_fun = SMA, n = 20)
SMA() 단순이동평균 SMA(price, n = 20)
EMA() 지수이동평균 EMA(price, n = 12)
RSI() 상대강도지수 RSI(price, n = 14)
MACD() MACD 지표 MACD(price, nFast = 12, nSlow = 26, nSig = 9)
rollapply() 롤링 통계 rollapply(x, width = 30, FUN = sd)
cumprod() 누적 곱 (누적 수익률) cumprod(1 + daily_return) - 1
cor() 상관계수 행렬 cor(returns_wide)
corrplot() 상관계수 히트맵 corrplot(cor_matrix, method = "color")
patchwork / 차트 세로 결합 p1 / p2
patchwork ` ` 차트 가로 결합

파이프 연산자 비교

R 4.1부터 네이티브 파이프 |>가 도입되었습니다. 이 교재는 네이티브 파이프를 사용했지만, 기존 magrittr 파이프 %>%도 동일하게 동작합니다.

연산자 패키지 특징
` >` R 기본 (4.1+)
%>% magrittr / tidyverse R 4.0 이하 환경에서 사용

자주 쓰는 패키지 요약

패키지 주요 역할 로드 방법
tidyverse 데이터 조작·시각화 묶음 library(tidyverse)
dplyr 데이터프레임 조작 tidyverse 포함
ggplot2 시각화 tidyverse 포함
readr CSV 읽기 tidyverse 포함
tidyr 데이터 형태 변환 tidyverse 포함
lubridate 날짜 처리 library(lubridate)
stringr 문자열 처리 tidyverse 포함
readxl Excel 읽기 library(readxl)
scales 축 포맷 library(scales)
patchwork 차트 결합 library(patchwork)
ggrepel 레이블 겹침 방지 library(ggrepel)
rmarkdown 리포트 생성 library(rmarkdown)
quantmod 주가 데이터 수집 library(quantmod)
tidyquant 금융 분석 tidyverse 스타일 library(tidyquant)
TTR 기술 지표 계산 tidyquant 포함
corrplot 상관계수 시각화 library(corrplot)
zoo 롤링 통계 library(zoo)

이 치트시트를 벽에 붙여두거나 즐겨찾기에 저장해두면, 실전에서 함수 이름이 생각나지 않을 때 빠르게 찾을 수 있습니다.