1.carData 패키지의 MplsStops 데이터셋은 차량이나 사람의 수상한 멈춤 행동에 대한 미내애폴리스 경찰의 보고 데이터를 저장하고 있다. 다음의 물음에 답하기 위한 R코드를 작성하시오.
(1)수상한 행동을 한 행인의 인종 비율(race)을 원그래프로 나타내시오.
library(carData)
tbl<-table(MplsStops$race)
pie(tbl)
(2)수상한 멈춤인지 교통신호에 의한 멈춤인지(problem)의 비율을 원그래프로 나타내시오. 단, 수상한 멈춤(suspicious)은 빨간색으로, 교통신호에 의한 멈춤(traffic)은 파란색으로 나타낸다.
tbl<-table(MplsStops$problem)
pie(tbl,col=c('red','blue'))
(3)수상한 멈춤을 한 사람에 대한 수색여부(personSearch) 비율을 원그래프로 나타내시오.
tbl<-table(MplsStops$personSearch)
pie(tbl)
(4)수상한 멈춤을 한 사람의 성별(gender) 비율을 3차원 원그래프로 나타내시오. 단, 파이의 색을 남성은 오렌지색, 여성은 초록색, 기타는 노란색으로 지정한다.
##4-4.
tbl<-table(MplsStops$gender)
install.packages('plotrix')
library(plotrix)
pie3D(tbl,col=c('green','orange','yellow'))
2.DAAG 패키지의 greatLakes 데이터셋은 1918~2009년 사이의 4개의 호수에 대한 수위 측정 데이터를 저장하고 있다. 다음과 같이 ds를 생성한 뒤 다음 물음에 답하기 위한 R코드를 작성하시오.
(1)Erie호의 연도별 수위 변화를 선그래프로 나타내시오.
library(DAAG)
data(greatLakes)
ds<-data.frame(year=1918:2009,greatLakes)
plot(ds$year,ds$Erie,
type='l',lty=1,lwd=1,
xlab='year',ylab='수위')
(2)michHuron호의 수위 변화를 다음과 같은 모양의 그래프로 작성하시오.
plot(ds$year,ds$michHuron,
type='b',lty=1,lwd=1,col='red',
xlab='year',ylab='수위')
(3)Erie,michHuron,StClair 호수의 연도별 수위 변화를 하나의 그래프로 작성하되 호수별로 선의 색을 다르게 하시오(y축 값의 범위는 173~177.5, 선의 종류(type)는 'b'로 설정).
plot(ds$year,ds$Erie,col='red',
type='b',lty=1,lwd=1,
xlab='year',ylab='수위',ylim=c(173,177.5))
lines(ds$year,ds$michHuron,type='b',col='blue')
lines(ds$year,ds$StClair,type='b',col='green')
3.DAAG 패키지의 cfseal 데이터셋은 상업적 포획에 의해 죽은 물개에 대한 데이터를 저장하고 있다. 다음 물음에 답하기 위한 R코드를 작성하시오.
(1)물개의 체중(weight) 분포를 상자그림으로 나타내시오.
library(DAAG)
data(cfseal)
ds<-data.frame(cfseal)
boxplot(ds$weight)
(2)물개의 심장무게(heart) 분포에서 특이값을 찾아 출력하시오.
boxplot.stats(ds$heart)
$out
[1] 1012 1075
(3)물개를 두 그룹으로 나누되 나이가 평균보다 적은 경우에는 'young'으로, 평균 이상인 경우는 'old'로 지정한다. 그룹에 따라 물개의 몸무게(weight)분포를 상자그림으로 나타내시오. 단, 상자 색은 'old'인 경우 오렌지색, 'young'인 경우 초록색으로 한다.
*그룹별 상자그림을 그릴 때 그룹 정보는 팩터 타입이어야 한다.
grp<-rep('old',nrow(ds))
grp[ds$age<mean(ds$age)]<-'young'
boxplot(ds$weight~grp)
rep('old',nrow(ds))
(4)물개를 세 그룹으로 나누되 몸무게가 사분위수 Q1 미만인 경우는 'low', Q1~Q3사이인 경우는 'middle', Q3를 초과하는 경우는 'high'로 한다. 그룹에 따라 물개의 위(stomach) 무게 분포를 상자그림으로 나타내시오.
summary(df$weight)
grp<-rep('low',nrow(df))
grp[df$weight>28.12]<-'middle'
grp[df$weight>68.38]<-'high'
boxplot(df$stomach~grp)
4.DAAG 패키지의 greatLakes 데이터셋은 4개의 호수의 수위 측정 데이터를 저장하고 있다. 다음과 같이 ds를 생성한 뒤 다음 물음에 답하기 위한 R 코드를 작성하시오.
(1)Erie호와 michHuron호의 수위분포를 산점도로 나타내시오.
library(DAAG)
data("greatLakes")
ds<-data.frame(greatLakes)
plot(ds$Erie,ds$michHuron)
(2)4개의 호수의 수위를 다중 산점도로 나타내시오.
plot(ds)
5.DAAG 패티지의 grog 데이터셋은 호주와 뉴질랜드의 주류 소비에 대한 데이터를 저장하고 있다. 다음과 같이 데이터셋을 불러온 뒤, 다음 물음에 답하기 위한 R 코드를 작성하시오.
(1)맥주(Beer)와 와인(Wine)에 대한 산점도를 작성하시오.
library(DAAG)
data(grog)
ds<-data.frame(grog)
plot(ds$Beer,ds$Wine)
(2)맥주(Beer), 와인(Wine), 스피릿(Spirit)에 대한 다중 산점도를 작성하되 점의 색을 호주는 빨간색, 뉴질랜드는 파란색으로 지정하시오. 그리고 나라에 따라 점의 모양도 다르게 하시오.
levels(ds$Country)
group<-as.numeric(ds$Country)
colors<-c('red','blue')
vars<-c('Beer','Wine','Spirit')
plot(ds[,vars],pch=c(group),col=colors[group])
'기타 > R' 카테고리의 다른 글
[R]난생처음 R코딩&데이터 분석-11장 개념 (0) | 2021.11.22 |
---|---|
[R]난생처음 R코딩&데이터 분석-10장 연습문제 (0) | 2021.11.22 |
[R]난생처음 R코딩&데이터 분석-8장 연습문제 (0) | 2021.11.21 |
[R]SVM,KNN-Titanic (0) | 2021.11.19 |
[R]난생처음 R코딩&데이터 분석-10장 개념 (0) | 2021.11.18 |