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