프로그래밍 언어/R

08. R에서 사용하는 기본 함수 이해

ourkofe's story 2024. 8. 24. 23:00

R은 강력한 데이터 분석 및 시각화 도구로서, 다양한 함수들을 통해 데이터를 효율적으로 처리하고 분석할 수 있습니다. 특히, R에서 제공하는 기본 함수들은 데이터 조작, 탐색, 통계 계산, 시각화 등 여러 작업을 손쉽게 수행할 수 있도록 도와줍니다. 이 글에서는 R에서 자주 사용되는 기본 함수들을 정리하여 소개하고자 합니다. R을 처음 접하신 분들이나, 기본기를 다시 점검하고 싶은 분들에게 유용한 참고자료가 되기를 바랍니다.


R에서 자주 사용하는 기본 함수


기본 연산 및 통계 함수

  • sum(x):
    • 벡터 x의 모든 요소를 더한 값을 반환합니다.
    • 예: sum(c(1, 2, 3, 4))은 10을 반환합니다.
  • mean(x):
    • 벡터 x의 평균을 계산합니다. 이는 모든 요소의 합을 요소의 개수로 나눈 값입니다.
    • 예: mean(c(1, 2, 3, 4))은 2.5를 반환합니다.
  • median(x):
    • 벡터 x의 중앙값을 반환합니다. 정렬된 값들 중 중간에 위치한 값을 의미합니다.
    • 예: median(c(1, 3, 2, 4))은 2.5를 반환합니다.
  • sd(x):
    • 벡터 x의 표준편차를 계산하여 반환합니다. 표준편차는 데이터가 평균으로부터 얼마나 퍼져있는지를 나타냅니다.
    • 예: sd(c(1, 2, 3, 4))은 약 1.29를 반환합니다.
  • var(x):
    • 벡터 x의 분산을 계산합니다. 분산은 각 데이터가 평균으로부터 얼마나 떨어져 있는지를 제곱하여 평균한 값입니다.
    • 예: var(c(1, 2, 3, 4))은 약 1.67을 반환합니다.
  • min(x), max(x):
    • 벡터 x의 최소값 또는 최대값을 반환합니다.
    • 예: min(c(1, 2, 3, 4))은 1, max(c(1, 2, 3, 4))은 4를 반환합니다.
  • range(x):
    • 벡터 x의 최소값과 최대값을 벡터로 반환합니다.
    • 예: range(c(1, 2, 3, 4))은 c(1, 4)를 반환합니다.
  • quantile(x, probs):
    • 벡터 x의 특정 백분위수(quantile)를 계산합니다.
    • 예: quantile(c(1, 2, 3, 4, 5), 0.25)은 2를 반환합니다.
  • cumsum(x):
    • 벡터 x의 누적 합계를 반환합니다.
    • 예: cumsum(c(1, 2, 3))은 c(1, 3, 6)을 반환합니다.
  • diff(x):
    • 벡터 x의 연속된 값들 사이의 차이를 계산합니다.
    • 예: diff(c(1, 3, 6))은 c(2, 3)을 반환합니다.

데이터 조작 및 탐색 함수

  • length(x):
    • 벡터 x의 요소 개수를 반환합니다.
    • 예: length(c(1, 2, 3))은 3을 반환합니다.
  • dim(x):
    • 행렬 또는 데이터프레임 x의 차원(행과 열의 수)을 반환합니다.
    • 예: dim(matrix(1:6, nrow = 2))은 c(2, 3)을 반환합니다.
  • nrow(x), ncol(x):
    • 데이터프레임 또는 행렬 x의 행 수와 열 수를 반환합니다.
    • 예: nrow(matrix(1:6, nrow = 2))은 2, ncol(matrix(1:6, nrow = 2))은 3을 반환합니다.
  • head(x, n), tail(x, n):
    • 데이터프레임 또는 벡터 x의 처음 n개 또는 마지막 n개 요소를 반환합니다.
    • 예: head(1:10, 3)은 c(1, 2, 3)을 반환하고, tail(1:10, 3)은 c(8, 9, 10)을 반환합니다.
  • unique(x):
    • 벡터 x의 중복되지 않은 고유한 값들을 반환합니다.
    • 예: unique(c(1, 1, 2, 2, 3))은 c(1, 2, 3)을 반환합니다.
  • table(x):
    • 벡터 x의 각 요소가 나타나는 빈도를 반환합니다.
    • 예: table(c(1, 1, 2, 3, 3))은 1: 2, 2: 1, 3: 2를 반환합니다.

인덱싱 및 서브셋팅 함수

  • [ ]:
    • 특정 위치의 요소를 선택하거나 하위 집합을 추출합니다.
    • 예: x[1:3]은 벡터 x의 첫 3개 요소를 반환합니다.
  • which(x):
    • 논리적 조건을 만족하는 인덱스를 반환합니다.
    • 예: which(c(1, 3, 5) > 2)은 c(2, 3)을 반환합니다.
  • subset(x, condition):
    • 데이터프레임 x에서 조건에 맞는 부분 집합을 반환합니다.
    • 예: subset(mtcars, mpg > 20)은 mpg가 20보다 큰 행들만 반환합니다.

데이터 프레임 작업 함수

  • data.frame():
    • 데이터프레임을 생성하는 함수로, 서로 다른 데이터 유형을 결합할 수 있습니다.
    • 예: data.frame(x=1:3, y=c('a', 'b', 'c'))은 두 열이 있는 데이터프레임을 만듭니다.
  • $:
    • 데이터프레임의 특정 열에 접근하는 데 사용됩니다.
    • 예: df$name은 데이터프레임 df의 name 열을 반환합니다.
  • rbind(x, y), cbind(x, y):
    • rbind는 두 데이터프레임 또는 행렬을 행(row) 단위로 결합하고, cbind는 열(column) 단위로 결합합니다.
    • 예: rbind(data.frame(a=1), data.frame(a=2))은 행을 추가한 데이터프레임을 만듭니다.
  • merge(x, y, by, all):
    • 두 데이터프레임을 공통 열 또는 인덱스를 기준으로 병합합니다.
    • 예: merge(df1, df2, by="id")은 두 데이터프레임을 id 열을 기준으로 병합합니다.

데이터 변환 함수

  • as.numeric(x), as.character(x), as.factor(x):
    • 벡터 x를 각각 숫자형, 문자형, 팩터형으로 변환합니다.
    • 예: as.numeric("3")은 3을 반환하고, as.character(3)은 "3"을 반환합니다.
  • factor(x):
    • 벡터 x를 팩터(factor)로 변환합니다. 팩터는 범주형 데이터를 나타내는 데 사용됩니다.
    • 예: factor(c("low", "medium", "high"))은 3레벨의 팩터를 만듭니다.

그래프 및 시각화 함수

  • plot(x, y):
    • x와 y 데이터를 사용해 기본 산점도를 그립니다.
    • 예: plot(1:10, 1:10)은 1부터 10까지의 값들을 그래프로 그립니다.
  • hist(x):
    • 벡터 x의 히스토그램을 그립니다. 히스토그램은 데이터의 분포를 시각화합니다.
    • 예: hist(rnorm(100))은 정규분포를 따르는 100개의 값에 대한 히스토그램을 그립니다.
  • boxplot(x):
    • 벡터 x의 박스플롯(boxplot)을 그립니다. 박스플롯은 데이터의 중앙값, 사분위수 및 이상값을 시각화합니다.
    • 예: boxplot(mpg ~ cyl, data=mtcars)은 실린더 수에 따른 mpg의 박스플롯을 그립니다.
  • barplot(height):
    • 주어진 height에 대한 막대 그래프를 그립니다.
    • 예: barplot(table(mtcars$cyl))은 실린더 수에 대한 막대 그래프를 그립니다.
  • lines(x, y):
    • 기존 그래프에 선을 추가합니다.
    • 예: lines(1:10, (1:10)^2)은 기존 그래프에 제곱된 선을 추가합니다.
  • points(x, y):
    • 기존 그래프에 점을 추가합니다.
    • 예: points(1:10, (1:10)^2)은 기존 그래프에 점을 추가합니다.
  • legend(x, y, legend):
    • 그래프에 범례를 추가합니다.
    • 예: legend("topright", legend=c("Data1", "Data2"))은 그래프의 오른쪽 상단에 범례를 추가합니다.

제어문 작성 함수

  • if (condition) { ... } else { ... }:
    • 조건에 따라 코드 블록을 실행할 수 있습니다.
    • 예: if (x > 0) { print("Positive") } else { print("Non-positive") }
  • for (i in sequence) { ... }:
    • 반복문으로, sequence에 있는 각 요소에 대해 코드 블록을 반복 실행합니다.
    • 예: for (i in 1:5) { print(i) }은 1부터 5까지의 숫자를 출력합니다.
  • while (condition) { ... }:
    • 주어진 조건이 TRUE인 동안 코드 블록을 반복 실행합니다.
    • 예: while (x < 10) { x <- x + 1 }

데이터 요약 함수

summary(object)

  • summary() 함수는 주어진 객체의 요약 통계량 또는 정보를 반환합니다. 이 함수는 객체의 종류에 따라 다르게 작동하며, 매우 유용한 함수입니다.
  • 객체가 벡터인 경우: 최소값, 1사분위수, 중앙값, 평균, 3사분위수, 최대값을 반환합니다.
  • 객체가 데이터프레임인 경우: 각 열에 대해 요약 통계를 제공합니다. 숫자형 데이터는 벡터와 유사하게 요약되고, 범주형 데이터는 각 범주의 빈도가 요약됩니다.
  • 객체가 팩터인 경우: 각 레벨의 빈도수를 반환합니다.
  • 객체가 선형 모델(lm) 객체인 경우: 모델의 통계적 요약(계수, 표준 오차, t-값, p-값 등)을 반환합니다.

R의 기본 함수들은 데이터 분석 작업에서 매우 유용하게 사용됩니다. 이러한 함수들을 잘 활용하면 데이터를 더 효과적으로 처리하고, 원하는 인사이트를 빠르게 도출할 수 있습니다. 처음에는 다소 낯설게 느껴질 수 있지만, 꾸준히 사용하다 보면 점차 익숙해지고, R의 강력한 기능들을 제대로 활용할 수 있게 될 것입니다. 앞으로도 다양한 R의 기능들을 탐구하며 더욱 풍부한 데이터 분석 경험을 쌓아가시길 바랍니다.

감사합니다!

728x90