R 통계/R 기초

[R기초] split 함수로 데이터를 나누고, apply함수로 기술통계 비교하기

2021. 9. 16. 08:00
728x90

탐색적 데이터 분석을 진행하면, 단순한 기술 통계에 대해 확인하고 싶은 경우가 있다.

R에서는 split 함수와 apply 계열 함수를 통해,

원하는 조건으로 데이터를 구분하고(split),

split(나눌 데이터 변수, 나눌 데이터 기준)

 

나눠진 조건에 맞추어(apply) 기술통계 값을 구할 수 있다.

sapply(split으로 나눠진 데이터, 원하는 기술 통계값)

#임의 데이터 생성 
name <- c("김철수", "김영희", "김개똥", "이소똥", "전말똥") 
height <- c(170, 165, 183, 155, 178) 
weight <- c(68.7, 57.4, 83.0, 55.2, 71.4) 
address <- c("서울시 00구 00동", "부산시 00구 00동", 
             "경기도 인천시 00구 00동", "경기도 성남시 00구 00동", 
             "강원도 강릉시 00동") 
gender <- c("남", "여", "남", "여", "남") 

BMI_calc <- data.frame(name, height, weight, address, gender)

height_by_gender <- split(BMI_calc$height, BMI_calc$gender)

<입력1>
sapply(height_by_gender, mean)

<결과1>
 남    여
177   160

<입력2>
sapply(height_by_gender, sd)

<결과2>
    남      여
6.557439 7.071068

<입력3>
sapply(height_by_gender, range)

<결과3>
      남    여
[1,] 170   155
[2,] 183   165
 
<입력5>
sapply(height_by_gender, min)

<결과5>
 남   여
170  155 

<입력6>
sapply(height_by_gender, max)

<결과6>
 남  여
183 165

<입력7>
sapply(height_by_gender, summary)

<결과7>
          남      여
min.    170.0   155.0
1st Qu. 174.0   157.5
median  178.0   160.0
mean    177.0   160.0
3rd Qu. 180.5   162.5
max.    183.0   165.0

 

<sapply에 사용 가능한 기술 통계 함수 정리>

min 최소값
max 최대값
mean 평균값
median 중앙값
range 범위
quantile 사분위수
IQR Inter Quantile Range
var 분산
sd 표준편차
summary min, 1Q, median, mean, 3Q, max
728x90