데이터를 분석하다보면 객체 내 원소(값)의 기초 통계량을 산출하거나, 수학적으로 변환하고자 할 때가 있습니다. R에서는 산술 함수들이 기본적으로 내장 되어 있으나, 다른 언어와 상이한 부분이 있으므로 유의해야합니다. 

 

18.1. 기초 산술 함수

더보기

(1) 합계 함수, sum()

sum() 함수는 벡터의 원소 합을 출력하는 함수입니다. 예를 들어 1, 2, -3, 4, 5의 원소를 갖는 vector_01 객체를 정의하고, sum() 함수를 사용하면 다음과 같습니다.

vector_01 <- c(1, 2, -3, 4, 5) ; vector_01
sum(vector_01)

 

(2) 제곱근(Square Root) 함수, sqrt() 

sqrt() 함수는 벡터의 각 원소에 제곱근을 취해 출력하는 함수입니다. 예를 들어 vector_01 객체에 sqrt() 함수를 취하면 다음과 같습니다.

sqrt(vector_01)

다만 음수에서 제곱근을 취할 경우, 복소수로 처리되기 때문에 NaN으로 처리됨을 확인할 수 있습니다.

 

(3) 절댓값(Absolute Value) 함수, abs()

abs() 함수는 벡터의 원소에 절댓값을 취한 값을 출력하는 함수입니다. 예를 들어 vector_01 객체에 abs() 함수를 취하면 다음과 같습니다.

abs(vector_01)

 

(4) 자연 지수 함수, exp()

exp() 함수는 자연상수 e의 차수를 각 원소 정의해 출력하는 함수입니다. 예를 들어 vector_01 객체에 exp() 함수를 취하면 다음과 같습니다.

exp(vector_01)

 

(5) 로그 함수, log()

log() 함수는 각 원소에 로그를 취한 값을 출력하는 함수입니다. 함수의 구조는 다음과 같습니다.

log(x, base)
 
파라미터 설명
  x   값
  base   로그의 밑, 기본값은 exp(1)
 

예를 들어 vector_01 객체의 각 원소에 log() 함수를 취하면다음과 같습니다.

log(vector_01)

 

18.2. 기초 통계 함수

더보기

(1) 최댓값 함수, max()

max() 함수는 벡터의 원소(실수) 중 가장 큰 값을 출력하는 함수입니다. 예를 들어 vector_01 객체에 max() 함수를 취하면 다음과 같습니다.

max(vector_01)

 

(2) 최솟값 함수, min()

min() 함수는 벡터의 원소 중 가장 작은 값을 출력하는 함수입니다. 예를 들어 vector_01 객체에 min() 함수를 취하면 다음과 같습니다.

min(vector_01)

 

(3) 평균 함수, mean() 

mean() 함수는 벡터의 산술 평균을 출력하는 함수입니다. 예를 들어 vector_01 객체에 mean() 함수를 취하면 다음과 같습니다.

mean(vector_01)

 

(4) 중위수(Median) 함수, median()

중위수란, 데이터를 오름차순으로 정렬했을 때 중앙에 위치하는 값을 의미합니다. median() 함수를 통해 중위수를 출력할 수 있는데, vecotr_01 객체의 중위수를 출력하면 다음과 같습니다. 

median(vector_01)

 

(5) 빈도표(도수분포표) 함수, table()

빈도표란 데이터가 몇 개의 값(종류)로 존재하고, 해당하는 갯수가 몇개인지 파악하는 표를 의미합니다. R에서 빈도표를 사용하기 위해선 table() 함수를 사용하는데, 예시로 들 vector_02 객체를 정의하고 빈도를 구하면 다음과 같습니다.

vector_02 <- c("A", "A", "A", "B", "C", "C") ; vector_02
table(vector_02)

 

PLUS) 최빈값(Mode) 함수

최빈값이란, 데이터에서 가장 많은 빈도를 보이는 값을 의미합니다. 다만 R에서는 기본적으로 최빈값 함수를 제공하지 않습니다. 그러므로 최빈값을 구하려면 사용자가 직접 정의해야합니다. vector_02 객체의 최빈값은 다음과 같습니다.

names(which.max(table(vector_02))) #or names(sort(x=table(vector_02), decreasing=TRUE)[1])

 

(6) (표본) 분산(Variance) 함수, var()

분산은 관측치에서 평균을 뺀 편차(deviation)의 제곱값을 의미합니다. var() 함수를 통해 벡터의 분산을 출력할 수 있는데, vecotr_01 객체의 분산는 다음과 같습니다.

var(vector_01)

 

(7) (표본) 표준편차(Standard Deviation) 함수, sd()

표준편차는 분산에서 제곱근을 취한 값입니다. sd() 함수를 통해 벡터의 표준편차를 출력할 수 있는데, vecotr_01 객체의 표준편차는 다음과 같습니다. 

sd(vector_01)

 

(8) 분위수 함수, quantile()

분위수란 데이터를 오름차순 정렬했을 때 위치값을 의미합니다. quantile() 함수를 통해 각 분위수를 출력할 수 있는데, 함수의 구조는 다음과 같습니다.

quantile(x, prob, names)
 
파라미터 설명
  x   값(벡터)
  prob   기본값은 하위 0%, 25%, 50%, 75%, 100% 출력
  names   기본값은 TRUE, FALSE일시 이름 속성이 부여되지 않음
 

예를 들어 vector_01 객체의 각 분위수는 다음과 같습니다.

quantile(vector_01)

이외에도 probs 파라미터를 이용해 특정 하위값을 확인할 수 있습니다. 예를 들어 vector_01 객체의 하위 33%의 값은 다음과 같습니다.

quantile(vector_01, probs=0.33)

 

18.3. 소수점 처리 함수

더보기

(1) 반올림 함수, round()

round() 함수는 각 원소의 값의 자릿수를 반올림하여 출력하는 함수입니다. 함수의 구조와 주요 파라미터는 다음과 같습니다.

round(x, digits)
 
파라미터 설명
  x   스칼라 혹은 벡터
  digits   처리할 자리의 수, 양수 일시 소수점 자리, 음수 일시 정수 자리수
 

소수를 가지는 vector_03 객체에서, 소수 첫번 째 자리에서 반올림하는 예시를 들면 아래와 같습니다.

vector_03 <- c(1.25, 3.33, 5.47, 7.818590, 9.98910) ; vector_03
round(x=vector_03, digits=1)

 

PLUS) digits 파라미터에 음수값을 할당할 경우

round(x=vector_03, digits=-1)

 

(2) 올림 함수, ceiling()

ceiling() 함수는 소수점 값을 올려 출력하는 함수입니다. vector_03 객체에서 올림을 취하면 다음과 같습니다.

ceiling(x=vector_03)

 

(3) 내림 함수, floor()

floor()함수는 소수점 값을 내려 출력하는 함수입니다. vector_03 객체에서 내림을 취하면 다음과 같습니다.

floor(x=vector_03)

 

18.4. 수열 및 반복 벡터 생성 함수

더보기

(1) n:m 키워드

n:m 키워드는 공차가 1인 등차수열(벡터)를 출력하고자 할 때 사용합니다. 일반적인 사용 예시는 다음과 같습니다. 

1:10

 

(2) 등차 수열 함수, seq()

seq() 함수는 시작값, 끝값, 공차를 정의해 등차 수열을 출력하는 함수입니다. 함수 구조와 주요 파라미터는 다음과 같습니다.

seq(from, to, by)
 
파라미터 설명
  from   시작값
  to   끝값
  by   공차
length.out   (원소간 거리가 같게 만드는) 벡터의 길이
 

예를 들어 by 파라미터를 활용하여, 1부터 10까지 공차가 2인 벡터를 출력하면 다음과 같습니다.

seq(from=1, to=10, by=2)

 

PLUS) 원소 간 거리가 동일한 수열 생성하기

length.out 파라미터를 활용하여, 1부터 10까지 5개의 원소를 가지는 벡터를 생성하면 다음과 같습니다.

seq(from=1, to=10, length.out=5)

결과를 살펴보면 출력된 벡터의 원소간 거리가 2.25으로 동일함을 알 수 있습니다.

 

(3) 반복 함수, rep()

rep() 함수는 일정한 데이터 구조를 반복하는 벡터를 출력하는 함수입니다. 함수의 구조는 다음과 같습니다.

req(x, each, times, ···)
 
파라미터 설명
  x   스칼라 혹은 벡터
each   x가 벡터로 할당되었을 시, 각 원소들의 반복 횟수
times   전체 반복 횟수
 

rep() 함수의 활용 예시 코드는 다음과 같습니다. 

rep(x="A", time=2)

 

PLUS) each 파라미터의 응용

x 파라미터에서 벡터로 입력된다면, each() 파라미터를 통해 각 원소의 반복 횟수를 정의할 수 있습니다. 예를 들면 다음과 같습니다.

rep(x=c("A", "B"), each=3, time=2)

출력 결과를 확인하면 x에서 입력받은 "A", "B" 원소가 each 파라미터에 각 3번 반복되고, time 파라미터에 의해 전체 2번 반복됐음을 확인할 수 있습니다.