단일변수 데이터 탐색

1. R에서 제공하는 infert 데이터셋에 대해 다음 문제를 해결하기 위한 R 코드를 작성하시오.

(1) infert 데이터셋의 education 열(column)에는 각 사람이 교육받은 기간이 범주형 자료 형태로 저장되어 있다. infert 데이터셋의 education 열의 값을 잘라내어 edu에 저장한 후, edu의 값을 출력하시오.
edu <- infert$education
edu
##   [1] 0-5yrs  0-5yrs  0-5yrs  0-5yrs  6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 0-5yrs  0-5yrs  0-5yrs  0-5yrs  6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 0-5yrs  0-5yrs  0-5yrs  0-5yrs  6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 6-11yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs 12+ yrs
## Levels: 0-5yrs 6-11yrs 12+ yrs
(2) edu에 있는 값들의 중복을 제거하고 출력하시오.
unique(edu)
## [1] 0-5yrs  6-11yrs 12+ yrs
## Levels: 0-5yrs 6-11yrs 12+ yrs
(3) edu에 있는 값들에 대해 도수분포표를 작성하여 출력하시오.
table(edu)
## edu
##  0-5yrs 6-11yrs 12+ yrs 
##      12     120     116
(4) edu에 있는 값들에 대해 막대그래프를 작성하여 출력하시오.
barplot(table(edu),main='education',xlab='years',ylab='frequency')

2. 어떤 학급의 성별이 다음과 같을 때 주어진 문제를 해결하기 위한 R 코드를 작성하시오.

F F F M M F F F M M
(1) 위의 자료를 gender 벡터에 저장하시오.
gender <- c('F','F','F','M','M','F','F','F','M','M')
gender
##  [1] "F" "F" "F" "M" "M" "F" "F" "F" "M" "M"
(2) gender에 있는 값들에 대해 도수분포표를 작성하여 출력하시오.
table(gender)
## gender
## F M 
## 6 4
(3) gender에 있는 값들에 대해 막대그래프를 작성하여 출력하시오.
barplot(table(gender),main='Gender',xlab='gender',ylab='frequency')

(4) gender에 있는 값들에 대해 원그래프를 작성하여 출력하시오.
pie(table(gender),main='Gender')

3. 좋아하는 계절에 대한 조사 결과가 다음과 같을 때 주어진 문제를 해결하기 위한 R 코드를 작성하시오.

여름 겨울 가을 여름 가을 겨울 여름 여름 가을
(1) 위의 자료를 season 벡터에 저장하시오.
season <- c("여름","겨울","봄","가을","여름","가을","겨울","여름","여름","가을")
season
##  [1] "여름" "겨울" "봄"   "가을" "여름" "가을" "겨울" "여름" "여름" "가을"
(2) season에 있는 값들에 대해 도수분포표를 작성하여 출력하시오.
table(season)
## season
## 가을 겨울   봄 여름 
##    3    2    1    4
(3) season에 있는 값들에 대해 막대그래프를 작성하여 출력하시오.
barplot(table(season),main='favorite season',xlab='season',ylab='frequency')

(4) season에 있는 값들에 대해 원그래프를 작성하여 출력하시오.
pie(table(season),main='favorite season')

4. 학생 A의 과목별 성적이 다음과 같을 때 각 문제를 해결하기 위한 R 코드를 작성하시오.

KOR ENG ATH HIST SOC MUSIC BIO EARTH PHY ART
90 85 73 80 85 65 78 50 68 96
(1) 위 데이터를 score 벡터에 저장하시오(과목명은 데이터 이름으로 저장).
score <- c(90,85,73,80,85,65,78,50,68,96)
names(score) <- c("KOR","ENG","ATH","HIST","SOC","MUSIC","BIO","EARTH","PHY","ART")
(2) score 벡터의 내용을 출력하시오.
score
##   KOR   ENG   ATH  HIST   SOC MUSIC   BIO EARTH   PHY   ART 
##    90    85    73    80    85    65    78    50    68    96
(3) 전체 성적의 평균과 중앙값을 각각 구하시오.
mean(score) # 평균
## [1] 77
median(score) # 중앙값
## [1] 79
(4) 전체 성적의 표준편차를 출력하시오.
sd(score)
## [1] 13.49074
(5) 가장 성적이 높은 과목의 이름을 출력하시오.
index <- which.max(score)
names(score[index])   # names(score[score==max(score)])
## [1] "ART"
(6) 성적에 대한 상자그림을 작성하고, 이상치에 해당하는 과목이 있으면 출력하시오.
boxplot(score) # 이상치는 없음

(7) 다음 조건을 만족하는 위 성적에 대한 히스토그램을 작성하시오.

(그래프 제목: 학생 성적, 막대의 색: 보라색)

hist(score,main='Student Score',col="purple")

5. R에서 제공하는 mtcars 데이터셋에 대해 다음 문제를 해결하기 위한 R 코드를 작성하시오.

(1) 중량(wt)의 평균값, 중앙값, 절사평균값(절사범위: 15%), 표준편차를 각각 구하시오.
mean(mtcars$wt) # 평균값
## [1] 3.21725
median(mtcars$wt) # 중앙값
## [1] 3.325
mean(mtcars$wt, trim=0.15) # 절사평균값(절사범위: 15%)
## [1] 3.165208
sd(mtcars$wt) # 표준편차
## [1] 0.9784574
(2) 중량(wt)에 대해 summary( ) 함수의 적용 결과를 출력하시오.
summary(mtcars$wt)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.513   2.581   3.325   3.217   3.610   5.424
(3) 실린더수(cyl)에 대해 도수분포표를 출력하시오.
table(mtcars$cyl)
## 
##  4  6  8 
## 11  7 14
(4) 앞에서 구한 도수분포표를 막대그래프로 출력하시오.
barplot(table(mtcars$cyl),main='Cylender',xlab='cyl',ylab='frequency')

(5) 중량(wt)의 히스토그램을 출력하시오.
hist(mtcars$wt,main='Weight',xlab='wt',ylab='frequency')

(6) 중량(wt)에 대해 상자그림을 출력하시오.(단, 상자그림으로부터 관찰할 수 있는 정보를 함께 출력하시오.)
boxplot(mtcars$wt, main='Weight')

# 1. 이상치가 2개 존재
# 2. 자료의 중앙값은 대략 3.3
# 3. 자료의 1사분위수는 대략 2.5, 3사분위수는 대략 3.8
(7) 배기량(disp)에 대한 상자그림을 출력하시오.(단, 상자그림으로부터 관찰할 수 있는 정보를 함께 출력하시오.)
boxplot(mtcars$disp, main='disp')

# 1. 이상치는 없음
# 2. 자료의 중앙값은 대략 200
# 3. 자료의 1사분위수는 대략 120, 3사분위수는 대략 330
(8) 기어수(gear)를 그룹 정보로 하여 연비(mpg) 자료에 대해 상자그림을 작성하고, 각 그룹의 상자그림을 비교하여 관찰할 수 있는 것이 무엇인지 나타내시오.
# boxplot(mtcars$mpg~mtcars$gear,main='mpg by gear')
boxplot(mpg~gear,data=mtcars, main='mpg by gear')

# 각 그룹의 상자그림 비교 관찰: gear가 4인 자동차들이 연비가 상대적으로 높다

6. R에서 제공하는 trees 데이터셋에 대해 다음 문제를 해결하기 위한 R 코드를 작성하시오.

(1) trees 데이터셋의 앞쪽 일부 데이터만 출력하시오.
head(trees)
(2) 나무 지름(Girth)의 평균값, 중앙값, 절사평균값(절사범위: 15%), 표준편차를 각각 구하시오.
mean(trees$Girth) # 평균값
## [1] 13.24839
median(trees$Girth) # 중앙값
## [1] 12.9
mean(trees$Girth,trim=0.15) # 절사평균값(절사범위: 15%)
## [1] 13.04348
sd(trees$Girth) # 표준편차
## [1] 3.138139
(3) 나무 지름(Girth)에 대해 히스토그램을 작성하시오.
hist(trees$Girth,main='Girth of trees',xlab='Girth')

(4) 나무 지름(Girth)에 대해 상자그림을 작성하시오.
boxplot(trees$Girth,main='Girth of trees')

(5) 나무 높이(Height)의 평균값, 중앙값, 절사평균값(절사범위: 15%), 표준편차를 각각 구하시오.
mean(trees$Height) # 평균값
## [1] 76
median(trees$Height) # 중앙값
## [1] 76
mean(trees$Height,trim=0.15) # 절사평균값(절사범위: 15%)
## [1] 76.3913
sd(trees$Height) # 표준편차
## [1] 6.371813
(6) 나무 높이(Height)에 대해 히스토그램을 작성하시오.
hist(trees$Height, main='Height of trees',xlab='Height')

(7) 나무 높이(Height)에 대해 상자그림을 작성하시오.
boxplot(trees$Height, main='Height of trees')