코딩초보 김씨
[R] 단일변수 자료의 분석,탐색 방법 본문
[ 단일 변수란? ]
단일 변수 자료, univariate data : 하나의 변수로만 구성된 자료 -> Vector에 저장하여 분석
다중 변수 자료, multivariate data : 두 개 이상의 변수로 구성된 자료 -> Matrix나 Dataframe에 저장하여 분석
[ 자료의 종류 : 범주형? 연속형? ]
1. 범주형 자료,categorical data (=질적 자료, qualitative data)
| 범주형 자료 | 표현 |
| 성별 | Male, Female |
| 혈액형 | A, B, O, AB |
| 찬성 여부 | 찬, 반 |
2. 연속형 자료 (=양적 자료)
| 연속형 자료 | 표현 |
| 몸무게 | 57.4, 64.1, 71.0, 65.1 |
| 키 | 162, 180, 174, 171 |
| 온도 | 20.5, 28.1, 24.4, 26.0 |
위에서 배운 자료형의 분류로 단일 변수 범주형, 단일 변수 연속형의 분석 방법에 대해 아래에 정리하였다.
[ 단일 변수 범주형 자료 ]
1. 이게 뭐야? 특성이 하나이면서 자료의 특성이 범주형인 자료
2. 분석 방법 : 도수분포표
3. 시각화 : 막대그래프나 원그래프
4. type 1) text로 표현된 범주형 자료
(예시 : 학생들이 선호하는 계절)
[도수분포표 계산]
favorite <- c('WINTER', 'SUMMER', 'SPRING', 'SUMMER', 'SUMMER','FALL', 'FALL', 'SUMMER', 'SPRING', 'SPRING')
# 도수분포표 계산
table(favorite)
# 비율 출력
table(favorite)/length(favorite)
[시각화 1. 막대그래프, barplot]
ds <- table(favorite)
barplot(ds, main='favorite season')
[시각화 2. 원형그래프, pieplot]
ds <- table(favorite
ds
pie(ds, main='favorite season')
4. type 2) 숫자로 표현된 범주형 자료
(예시 : 학생 15명이 선호하는 색깔을 조사한 자료)
favorite.color <- c(2, 3, 2, 1, 1, 2, 2, 1, 3, 2, 1, 3, 2, 1, 2)
# 도수분포표 계산
ds <- table(favorite.color)
# 막대그래프
barplot(ds, main='favorite color')
colors <- c('green', 'red', 'blue')
names(ds) <- colors #자료값 1,2,3을 green, red, blue로 변경
ds
barplot(ds, main='favorite color', col=colors) # 색 지정 막대그래프
pie(ds, main='favorite color', col=colors) # 색 지정 원그래프
[ 단일 변수 연속형 자료 ]
1. 이게 뭐야? 특성이 하나이면서 자료의 특성이 연속형인 자료
2. 분석 방법 :
1) 평균
2) 중앙값(median)
3) 절사평균(trimmed mean)
4) 사분위수(quartile)

(예시) 100명의 학생을 대상으로 영어시험을 본 결과에 대한 사분위수 Q1=60, Q2=80, Q3=90
• 25명의 학생은 성적이 60점 미만이다.
• 25명의 학생은 성적이 60점~80점 사이이다.
• 25명의 학생은 성적이 80점~90점 사이이다.
• 25명의 학생은 성적이 90점 이상이다.
• 90점 이상인 학생이 25명이나 되기 때문에 이번 영어시험은 매우 쉬웠다.
• 전체 50%의 학생이 80점 이상의 성적을 받았다.
5) 산포(distribution)
(예시 : 평균, 중앙값, 절사평균)
mydata <- c(60, 62, 64, 65, 68, 69)
mydata.2 <- c(weight, 120)
mydata
weight.heavy
> mydata
[1] 60 62 64 65 68 69
> weight.heavy
[1] 60 62 64 65 68 69 120
# 평균
mean(mydata)
mean(mydata.2)
> mean(mydata)
[1] 64.66667
> mean(mydata.2)
[1] 72.57143
# 중앙값
median(mydata)
median(mydata.2)
> median(mydata)
[1] 64.5
> median(mydata.2)
[1] 65
# 절사평균(상하위 20% 제외)
mean(mydata, trim=0.2)
mean(mydata.2,trim=0.2)
> mean(mydata, trim=0.2)
[1] 64.75
> mean(mydata.2,trim=0.2)
[1] 65.6
(예시 : 사분위수 quantile)
mydata <- c(60, 62, 64, 65, 68, 69, 120)
quantile(mydata)
quantile(mydata, (0:10)/10) # 10% 단위로 구간을 나누어 계산
summary(mydata)
> quantile(mydata)
0% 25% 50% 75% 100%
60.0 63.0 65.0 68.5 120.0
> quantile(mydata, (0:10)/10) # 10% 단위로 구간을 나누어 계산
0% 10% 20% 30% 40% 50% 60% 70% 80% 90%
60.0 61.2 62.4 63.6 64.4 65.0 66.8 68.2 68.8 89.4
100%
120.0
> summary(mydata)
Min. 1st Qu. Median Mean 3rd Qu. Max.
60.00 63.00 65.00 72.57 68.50 120.00
(예시 : 산포)
mydata <- c(60, 62, 64, 65, 68, 69, 120)
var(mydata) # 분산
sd(mydata) # 표준편차
range(mydata) # 값의 범위
diff(range(mydata)) # 최댓값, 최솟값의 차이
> var(mydata) # 분산
[1] 447.2857
> sd(mydata) # 표준편차
[1] 21.14913
> range(mydata) # 값의 범위
[1] 60 120
> diff(range(mydata)) # 최댓값, 최솟값의 차이
[1] 60
3. 시각화 :
1) 히스토그램(histogram) : 구간을 나누고 구간에 속하는 값들의 개수를 세는 방법을 사용
2) 상자그림(box plot) : 사분위수를 시각화

(예시 : 히스토그램)
[예시 1] 자동차 제동 거리
dist <- cars[,2]
# histogram
hist(dist, # 자료(data)
main="Histogram for 제동거리", # 제목
xlab ="제동거리", # x축 레이블
ylab="빈도수", # y축 레이블
border="blue", # 막대 테두리색
col="green", # 막대 색
las=2, # x축 글씨 방향(0~3)
breaks=5) # 막대 개수 조절
# boxplot
boxplot(dist, main="자동차 제동거리")
# boxplot 정보
boxplot.stats(dist)
[예시 2] iris
boxplot(Petal.Length~Species, data=iris, main="품종별 꽃잎의 길이")

'R' 카테고리의 다른 글
| [R] 조건문, 반복문, 함수 - 복습 문제 & 정답 (0) | 2021.06.19 |
|---|---|
| [R] 행렬과 데이터프레임 - 복습 문제 & 정답 (0) | 2021.06.19 |
| [R] 조건에 맞는 데이터의 위치 찾기 (0) | 2021.06.18 |
| [R] 조건문, 반복문, 함수 (1) | 2021.06.18 |
| [R] 변수와 벡터 - 복습 문제 & 정답 (0) | 2021.06.18 |