📊 R 데이터 분석

데이터 분석을 위한 R수업 <3차시 ④: 파생변수 만들기>

해랑(Sea-wave) 2024. 10. 5.
반응형

 

실습용 데이터를 우선 만들어보자.

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

 

 

var1과 var2의 2변수로 만들어진 dataframe이다.

이때 var1값과 var2값을 더한 var_sum이라는 변수를 만들어 df에 추가해보겠다.

 

df 변수에 $변수명을 입력하고 <-로 추가했다.

 

df$var_sum <- df$var1 + df$var2 # var_sum 파생변수 생성

var_sum이 생긴걸 알 수 있다.

 


ggplot2에 들어있는 mpg 데잍에는 도시연비를 의미하는 cty 변수와 고속도로 엽니를 의미하는 hwy 변수가 있다.

이 둘의 평균 변수인 total을 만들어보겠다.

 

mpg$total <- (mpg$cty + mpg$hwy)/2
head(mpg)

 

 

total 부분이 새로 생긴걸 알 수 있다.

 

변수를 조합할 수도 있지만 함수를 이용해서 파생변수를 만들 수도 있다.

summary() 함수로 total 변수를 살펴보자

summary(mpg$total)

summary

hist() 함수를 이용하면 히스토그램으로 볼 수 있다.

이 히스토그램으로 부터 다음을 알 수 있다.

평균과 중앙값이 20이다. 최빈값은 20과 25사이다.

대부분 25이하이다.

 

이때 total 변수가 20을 넘기면 합격, 20을 넘기지 못하면 불합격인 변수를 만들어 보겠다.

 

ifelse()는 가장 많이 쓰이는 조건문 함수이다.

괄호안에 조건, 조건에 맞을때 부여할 값, 조건에 맞지않을때 부여할 값으로 코드를 작성한다.

 

mpg$test <- ifelse(mpg$total >= 20, "pass", "fail")
head(mpg, 20)

mpg데이터의 pass와 fail 파생변수 test

파생변수 test에서 pass와 fail을 확인할 수 있게 되었다.

 

막대 그래프로 빈도를 표현해보자

library(ggplot2)
qplot(mpg$test)

pass한 자동차가 fail한 자동차 보다 많은 걸 알 수 있다.

 

이번에는 ifelse를 두번 중첩하여 세가지 조건인 A, B, C로 판정해보겠다.

 

mpg$test <- ifelse(mpg$total >= 30, "A",
                   ifelse(mpg$total >= 20, "B", "C"))

 

head(mpg, 20)

 

total 변수의 값에따라 A, B, C 세 등급으로 나눈 걸 알 수 있다.

 

 

원하는 만큼 범주를 만들 수 있다.

ifelse 함수를 반복하는 것인데 이 경우 코드 마지막에 반복한 만큼 ")"를 입력해야 한다.

 

*A, B, C, D 네가지 등급으로 나누는 예시*

mpg$test <- ifelse(mpg$total >= 30, "A",
                   ifelse(mpg$total >= 25, "B",
                          ifelse(mpg$total >= 20, "C", "D"))) #)가 3번 들어간다!!!

 

 

 

기준이 엄격해진 이때 아래와 같은 코드를 입력하면,

qplot(mpg$test)

위와 같은 막대그래프를 얻을 수 있다.

 


막대 그래프와 히스토그램의 차이

: 막대 사이가 떨어져 있느냐의 차이가 있다

1. 개념적 차이

막대그래프 (Bar Chart):

  • 개념: 막대그래프는 범주형 데이터를 시각화하는 데 사용됩니다. 각 범주는 개별적으로 분리되어 있으며, 범주별로 값의 크기를 나타내는 막대의 길이로 데이터의 양을 비교합니다.
  • 특징: 막대는 서로 떨어져 있고, 각 막대는 범주형 변수를 나타냅니다. X축에는 범주형 값이, Y축에는 그 값의 크기가 표시됩니다.
  • 데이터 유형: 범주형 데이터(명목형 데이터 혹은 서열형 데이터)에서 사용합니다.

히스토그램 (Histogram):

  • 개념: 히스토그램은 연속형 데이터를 시각화하는 도구로, 데이터를 구간(bin)으로 나누어 각 구간에 속하는 데이터 포인트의 빈도를 막대의 높이로 표현합니다.
  • 특징: 막대가 서로 붙어있으며, 각 막대는 연속적인 데이터 구간을 나타냅니다. X축에는 데이터의 구간이, Y축에는 해당 구간에 속하는 데이터의 빈도가 표시됩니다.
  • 데이터 유형: 연속형 데이터(숫자형 변수)에 적합합니다.

2. 쓰임새 차이

막대그래프의 쓰임새:

  • 범주형 데이터 비교: 여러 범주(예: 도시, 제품, 카테고리 등)의 값을 시각적으로 비교하는 데 유용합니다.
  • 명확한 구분: 서로 다른 범주가 구분된 상태로 나열되기 때문에, 데이터 간 비교가 용이하며 범주 간의 차이를 명확히 볼 수 있습니다.
  • 예시: 특정 연도별 판매량, 다른 지역 간의 인구 비교 등.

히스토그램의 쓰임새:

  • 분포 시각화: 연속형 데이터가 어떻게 분포되어 있는지, 즉 데이터가 어느 구간에 집중되어 있는지를 파악하는 데 적합합니다.
  • 연속적인 구간: 데이터가 특정 범위 안에서 어떻게 분포하는지 보여주기 위해 데이터 구간을 나누고 그 빈도를 시각화합니다.
  • 예시: 학생들의 시험 점수 분포, 사람들의 키나 몸무게와 같은 연속형 변수가 어떻게 분포되어 있는지 분석할 때.

요약

막대그래프 (Bar Chart)히스토그램 (Histogram)

데이터 유형 범주형 데이터 연속형 데이터
막대 사이의 간격 막대가 서로 떨어져 있음 막대가 서로 붙어 있음
X축 범주 구간(bin)
Y축 범주에 해당하는 값(빈도 또는 값의 크기) 각 구간에 속한 데이터의 빈도
목적 범주형 데이터의 비교 연속형 데이터의 분포 분석
반응형

댓글