데이터 분석 업무에서 첫 번째는 분석하고자 하는 데이터셋의 구조와 형태를 파악하는 것입니다. 왜냐하면 구조와 형태을 올바르게 파악해야지 유의미한 전처리를 작업할 수 있기 때문입니다. R에서는 기본적으로 내장되어 있는 str(), head() 함수 등을 통해 객체의 구조를 탐색할 수 있습니다.

 

24.1. 데이터프레임 구조 파악

더보기

(0) 데이터 준비

데이터프레임의 구조를 파악하기 위해 iris 데이터셋을 예시로 들겠습니다. iris(붓꽃) 데이터셋은 꽃받침과 꽃잎의 정보로 종을 분류(classification)하기 위한 대표적인 머신러닝 연습 데이터셋입니다. iris 데이터셋에 대한 자세한 설명은 캐글의 <Iris Species>을 참조하시면 됩니다. iris 데이터셋을 호출하기 위한 코드는 다음과 같습니다. 

iris.csv
0.00MB
iris <- read.csv(file="data/iris.csv")

 

(1) 데이터셋 구조 진단 함수, str()

str() 함수는 R 객체에 존재하는 변수(컬럼)의 유형, 값, 구조를 요약하여 출력하는 함수입니다. 예를 들어 iris의 데이터 구조를 확인하기 위해 str() 함수를 사용하면 다음과 같습니다.

str(iris)

(사진 입력)

iris 데이터셋에서 Species 변수의 유형은 문자형 자료, 나머지 변수들은 숫자형 자료임을 알 수 있습니다.

 

(2) 데이터셋 요약, summary() 함수

summary() 함수는 데이터프레임의 각 컬럼들의 요약통계량을 출력하는 함수입니다. 수치형 자료의 경우에는 최댓값, 최솟값, 평균, 중앙값, 분위수를 출력하고, 팩터형일 경우 각 레벨의 샘플 갯수를 출력합니다. 코드는 다음과 같습니다.

summary(iris)

(사진 입력)

 

(3) 데이터셋 차원 출력 함수, dim()

dim() 함수는 데이터프레임의 차원(행∙열의 개수)을 출력하는 함수입니다. 출력할 때 첫 번째 값은 행 개수, 두 번째 값은 열을 출력합니다. dim()함수를 사용하면 결과는 같습니다.

dim(iris)

 

(4) 데이터셋 행 갯수 출력 함수, nrow()

nrow() 함수는 데이터프레임의 행 갯수를 출력하는 함수입니다. 예시 코드는 다음과 같습니다.

nrow(iris)

(사진 입력)

 

(4) 데이터셋 열 갯수 출력 함수, ncol()

ncol() 함수는 데이터프레임의 열 갯수를 출력하는 함수입니다. 코드는 다음과 같습니다.

ncol(iris)

(사진 입력)

 

(5) 데이터셋 행 이름 출력 함수, rownames()

rownames() 함수는 데이터프레임의 행 이름을 출력하는 함수입니다. 코드는 다음과 같습니다.  

 

(6) 데이터셋 열 이름 출력 함수, colnames()

colnames() 함수는 데이터셋의 변수 명을 출력하는 함수입니다. 코드는 다음과 같습니다.

colnames(iris)

 

(1) head()

head() 함수는 객체의 첫 부분의 행부터 출력 결과를 반환하는 함수입니다. head() 함수의 구조는 다음과 같습니다.

head(x, n=6L, keepnums, addrownums, ... )
 
파라미터 설명
x 객체
n 반환할 데이터의 길이
 

예를 들어, iris에서 첫 번째 행(혹은 레코드)부터 시작해 10개의 데이터를 출력해보겠습니다.

head(iris, n=10)

행 번호를 확인하면, 1번부터 10번까지의 데이터가 출력됐음을 확인할 수 있습니다.

 

(2) tail()

tail()함수는 객체의 마지막 부분부터 행을 반환하는 함수입니다. tail()함수의 구조와 파라미터 구성은 다음과 같은데, head()함수와 동일합니다. 

head(x, n=6L, keepnums, addrownums, ... )

예를 들어, iris의 마지막부터 올라오는 10개의 데이터를 출력해보겠습니다.

tail(iris, n=10)

행 번호를 확인하면, 마지막 데이터인 150번부터 140번까지 출력됐음을 확인할 수 있습니다. 

 

(3) unique()

unique() 함수는 변수의 중복되지 않은 고유한 유니크값을 출력하는 함수입니다. 유니크값을 파악함으로써 데이터셋의 성격을 파악할 수 있습니다. 코드는 다음과 같은데, $(dollor sign)은 데이터셋 안에 있는 요소(변수, 컬럼)를 호출하는 구문입니다. 

unique(iris$Sepal.Length)
unique(iris$Sepal.Width)
unique(iris$Petal.Length)
unique(iris$Petal.Width)
unique(iris$Species)