EDA 중 '데이터 모양 확인하기' 파트

 

<1> 데이터 파악하기

- 데이터가 주어졌을 때 가장 먼저 하는 일은 데이터의 전반적인 구조를 파악하는 것. 어떤 변수들이 있는지, 몇 행으로 구성되어 있는지 전반적인 구조를 살펴본다.

 

데이터를 파악할 때 사용하는 기본 함수들

1.  head( ) - 데이터 앞부분 확인하기

- 데이터의 앞부분을 출력하는 기능. 괄호 안에 데이터 프레임 이름을 입력하고 실행하면 앞에서부터 여섯 번째 행까지 출력된다.   ex. head(exam)

- 여섯 번째 행보다 더 아래 행까지 출력하고 싶으면 데이터 프레임 이름 뒤에 쉼표를 쓰고 숫자를 입력하면 입력한 행까지의 데이터를 출력할 수 있다.     ex. head(exam, 10) #앞에서부터 10행까지 출력

 

2. tail( ) - 데이터 뒷부분 확인하기

- 데이터의 뒷부분을 출력하는 기능. 괄호 안에 데이터 프레임 이름을 입력하고 실행하면 뒤에서부터 여섯 행을 출력된다. ex. tail(exam)

- head함수와 마찬가지로 숫자를 입력하면 원하는 만큼의 행을 출력할 수 있다. ex. tail(exam, 10) #뒤에서부터 10행까지 출력

 

3. View( ) - 뷰어 창에서 데이터 확인하기 (*V는 대문자로 입력)

- 엑셀과 유사하게 생긴 '뷰어 창'에 원자료를 직접 보여 주는 기능. 원자료를 눈으로 직접 확인해 보고 싶을 때 사용한다.

 

4.  dim( ) - 데이터가 몇 행, 몇 열로 구성되어 있는지 알아보기

- 데이터 프레임이 몇 행, 몇 열로 구성되어 있는지 알아볼 때 사용. 출력된 2개 숫자 중에서 앞의 숫자는 '행', 뒤의 숫자는 '열'의 개수를 나타낸다.

- [1] 20  5 이렇게 출력되었다면 >> 이 데이터는 20행, 5열로 구성되어 있다는 것을 의미

 

5. str( ) - 속성 파악하기

- 데이터에 들어 있는 변수들의 속성을 보여준다. 모든 변수의 속성을 한 눈에 파악하고 싶을 때 사용

str(exam)  # 데이터 속성 확인

## 'data.frame' :    20 obs. of 5 variables:  # 데이터의 속성과 몇 개의 관측치와 변수로 구성되어 있는지 표시됨
## $ id      :  int  1 2 3 4 5 6 7 8 9 10 . . .  
## $ class   :  int  1 1 1 1 2 2 2 2 3 3 . . .
## $ math    :  int  50 60 45 30 25 50 80 90 20 50 . . .
## $ english :  int  98 97 86 98 80 89 90 78 98 98 . . .
## $ science :  int  50 60 76 38 60 45 97 85 50 70 . . .

- 위의 출력 결과 예시를 보면 exam 데이터가 데이터 프레임이고, 20개의 관측치와 5개의 변수로 구성되어 있음을 알 수 있다.

 

6. summary( ) - 요약 통계랑 산출하기

- '평균'처럼 변수의 값을 요약한 '요약 통계량'을 산출. ex. 중앙값과 평균 등

- 요약 통계량을 보면 변수의 특성을 파악하는데 도움이 됨

- 수치에 관해 나타내는 것이므로 '연속형 데이터'에만 의미 있음.

summary( )를 실행해 출력되는 요약 통계량들

 

(어떤 데이터를 분석하든, 가장 먼저 이러한 함수들을 활용해 전반적인 특징을 파악하는 작업을 해야함)

 

<2> 변수명 바꾸기

- 데이터의 전반적인 특징을 파악하고 나면 본격적으로 분석하기 전에 변수명을 수정하는 작업을 해야 한다. 변수명이 기억하기 어려운 문자로 되어 있으면 쉬운 단어로 변경하는 게 좋다.

ex.  분석하고자 하는 데이터에서 성별을 s_12 이런식으로 저장해두었다면 분석하기 전 sex로 바꿔놓는 것이 이해하기 쉽고 헷갈리지 않게 작업할 수 있다. 

 

*dplyr 패키지의 rename( )을 이용해 변수명 바꾸기

# 실습에 활용할 데이터 프레임 생성

df_raw <- data.frame(var1 = c(1, 2, 1), var2 = c(2, 3, 2))

df_raw

##    var1 var2
## 1     1    2
## 2     2    3
## 3     1    2
# rename( )을 이용하기 위해 dplyr 패키지 설치 후 로드 (dplyr은 데이터 조작 패키지)

install.packages("dplyr")  # dplyr 설치
library(dplyr)             # dplyr 로드

 

》 데이터 프레임 복사본 만들기 (중요)

- 변수명을 바꾸기 전에 원본을 보유하기 위해 데이터 프레임 복사본을 만든다. 새로운 변수명 df_new에 df_raw를 할당하는 형태로 코드 작성

df_new <- df_raw  # 복사본 생성

 

》 변수명 바꾸기

- rename(데이터 프레임명, 새 변수명 = 기존 변수명)  // 괄호 안의 것들이 순서가 바뀌면 실행되지 않음.

df_new <- rename(df_new, v2 = var2)  # var2를 v2로 수정
df_new

##    var1   v2
## 1     1    2
## 2     2    3
## 3     1    2

 

 

3. 파생변수 만들기

- 데이터에 들어 있는 변수만 이용해 분석할 수도 있지만, 변수를 조합하거나 함수를 적용해 새 변수를 만들어 분석할 수 있음. 기존의 변수를 변형해 만든 변수를 '파생변수(Derived Variable)'라고 한다. 

ex. 학생들의 이름, 영어 점수, 수학 점수로 이루어진 데이터에 각 학생별 영어 점수와 수학 점수의 '평균' 변수를 새로 만들 수 있음

 

** 변수를 조합해 파생변수 만들기

# 실습에 활용할 2개의 변수로 구성된 데이터 프레임 생성

df <- data.frame(var1 = c(4, 3, 8), var2 = c(2, 6, 1))

df
##    var1 var2
## 1     4    2
## 2     3    6
## 3     8    1
df$var_sum <- df$var1 + df$var2  # var_sum 이라는 파생변수 생성
df

##    var1 var2 var_sum
## 1     4    2       6
## 2     3    6       9
## 3     8    1       9
df$var_mean <- (df$var1 + df$var2)/2  # var_mean 이라는 파생변수 생성
df

##    var1 var2 var_sum var_mean
## 1     4    2       6      3.0
## 2     3    6       9      4.5
## 3     8    1       9      4.5

 

 

 

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

<쉽게 배우는 R 데이터 분석 p.123>

문제 1. ggplot2의 midwest 데이터를 프레임 형태로 불러온 다음 데이터의 특징을 파악하세요.

 

 

문제 2. poptotal(전체 인구) 변수를 total로, popasian(아시아 인구) 변수를 asian으로 수정하세요.

(변수명이 바뀐 모습을 보이고 싶었는데, dplyr 패키지가 설치가 안돼서 일단은 코드만 작성했습니다.)

 

 

문제 3. total, asian 변수를 이용해 '전체 인구 대비 아시아 인구 백분율' 파생변수를 만들고, 히스토그램을 만들어 도시들이 어떻게 분포하는지 살펴보세요.

 

 

문제 4. 아시아 인구 백분율 전체 평균을 구하고, 평균을 초과하면 "large", 그 외에는 "small"을 부여하는 파생변수를 만들어 보세요.

 

 

문제 5. "large"와 "small"에 해당하는 지역이 얼마나 되는지 빈도표와 빈도 막대그래프를 만들어 확인해 보세요.

 

(large 119, small 318)

 

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

+ Recent posts