1.R에서 제공하는 기본 그래프 함수를 이용하여 코드를 작성하시오.
(1)state.x77 데이터셋에서 타일의 면적은 기대수명(Life Exe)으로, 타일의 색은 살인범죄율(Murder)로 하여 나무그림을 작성하시오. 타일에는 주의 이름을 표시한다.
library(treemap)
st<-data.frame(state.x77)
st<-data.frame(st,stname=rownames(st))
windows(7,6)
treemap(st,
index=c('stname'),
vSize='Life.Exp',
vColor='Murder',
type='value',
title='USA states Life.Exp and Muder')
(2)state.region 데이터셋은 state.x77 데이터셋의 각 주를 지역별로 구분한 데이터를 저장하고 있다. 이 정보를 이용하여 (1)번 문제의 나무그림을 지역 구분을 포함하여 작성하시오.
st<-data.frame(st, region=state.region)
windows(7,6)
treemap(st,
index=c('stname','region'),
vSize='Life.Exp',
vColor='Murder',
type='value')
(3)(2)번 문제에서 나무그림을 볼 때 가장 살인범죄율이 높은 지역은 어디인가?
Alabama
(4)state.x77 데이터셋과 state.region 데이터셋을 이용하여 지역별 살인범죄율(Murder) 분포를 상자그림으로 작성하시오. 상자의 색은 오랜지색으로 한다.
boxplot(Murder~region,data=st,col='orange')
(5)state.x77 데이터셋과 state.region 데이터셋을 이용하여 지역별 문맹률(Illiteracy)분포를 상자그림으로 작성하시오. 상자의 색은 heat.colors 팔레트를 이용하여 문맹률 평균이 높을수록 빨간색으로 표시한다.
region.avg<-aggregate(st$Illiteracy,by=list(st$region),FUN=mean)
region.avg<-data.frame(region.avg)[,2]
names(region.avg)<-1:4
odr<-rank(-region.avg)
odr
boxplot(Illiteracy~region, data=st,col=heat.colors(4)[odr])
(6)airquality 데이터셋에서 월별 일조량(Solar.R) 분포를 상자그림으로 작성하시오. 상자의 색은 heat.colors 팔레트를 이용하여 일조량 평균이 높을수록 빨간색으로 표시한다.
month.avg<-aggregate(airquality$Solar.R,by=list(airquality$Month),mean)
month.avg<-month.avg[,1]
names(month.avg)<-5:9
odr<-rank(-month.avg)
odr
boxplot(Solar.R~Month,data=airquality,col=heat.colors(5)[odr])
2.다음을 참조하여 airquality 데이터셋에서 월별 일조량(Solar.R) 평균을 방사형 차트로 작성하시오.
library(fmsb)
df<-airquality[complete.cases(airquality),]
score<-aggregate(df$Solar.R,by=list(df$Month),mean)[,2]
score.max<-rep(200,5)
score.min<-rep(100,5)
ds<-rbind(score.max,score.min,score)
ds<-data.frame(ds)
colnames(ds)<-c(5,6,7,8,9)
radarchart(ds)
3.iris 데이터셋의 4개 측정값 열(Sepal.Lenght, Sepal Width, Petal.Length, Petal.Width)에 대해 평균을 구하고 이를 방사형 차트로 작성하시오(차트에서 열별 최솟값은 1, 최댓값은 6)
library(fmsb)
SL<-mean(iris$Sepal.Length)
SW<-mean(iris$Sepal.Width)
PL<-mean(iris$Petal.Length)
PW<-mean(iris$Petal.Width)
score<-c(SL,SW,PL,PW)
score.max<-rep(6,4)
score.min<-rep(1,4)
ds<-rbind(score.max,score.min,score)
ds<-data.frame(ds)
colnames(ds)<-c('SL','SW','PL','PW')
radarchart(ds)
4.carData 패키지의 States 데이터셋은 미국의 주별 교육 관련 통계를 저장하고 있다. 이 데이터셋에 대해 ggplot 함수를 이용하여 코드를 작성하시오.
(1)지역(region)별 총인구(pop)수를 막대그래프로 나타내시오. 그래프의 색은 rainbow 팔레트에서 선택한다.
library(carData)
data(States)
library(ggplot2)
df<-aggregate(States[,'pop'],by=list(region=States$region),FUN=mean)
ggplot(df, aes(x=region,y=x))+
geom_bar(stat='identity',
width=0.7, fill=rainbow(9))
(2)1인당 교육비(dollars)에 대해 히스토그램을 작성하시오. 막대의 내부색은 초록색, 막대의 테두리색은 파란색, 막대의 방향은 가로방향으로 설정한다.
ggplot(States,aes(x=dollars))+
geom_histogram(binwidth=0.5,fill='green',color='blue')+
coord_flip()
(3)언어(SATV) 점수와 수학(SATM) 점수에 상관관계가 있는지 산점도 및 상관계수를 구하여 알아보시오.
ggplot(data=States,aes(x=SATV,y=SATM))+
geom_point()
cor(States$SATV,States$SATM) #0.9620359
(4)ESC 지역과 PAC 지역 학생들의 언어(SATV) 점수와 수학(SATM) 점수에 대해 삼점도를 작성하시오. 지역에 따라 점의 색을 다르게 표현한다.
tmp<-States[States$region=='ESC'|States$region=='PAC',]
ggplot(tmp, aes(x=SATV,y=SATM,color=region))+
geom_point()
(5)(4)번의 산점도를 볼 때 두 지역 학생들의 언어와 수학 점수에 차이가 있는가?
그렇다.
(6)지역별로 교사의 평균연봉(pay)에 대한 범위를 상자그림으로 나타내시오. 상자의 색은 지역에 따라 다르게 한다.
ggplot(States,aes(x=region,y=pay,fill=region))+
geom_boxplot()
(7)지역별로 고교 졸업생중 SAT 응시 비율(percent)을 상자그림으로 작성하시오. 상자그림의 제목은 '지역별 SAT 응시 비율', 상자의 색은 지역에 따라 다르게 표현한다.
ggplot(States,aes(x=region,y=percent,fill=region))+
geom_boxplot()+
ggtitle('지역별 SAT 응시 비율')
(8)carData 패키지의 Hartnagel 데이터셋은 캐나다의 연도별 통계 데이터를 저장하고 있다. 여성 1000명당 연도별 출산 자녀수(tfr)을 선그래프로 나타내시오.
data("Hartnagel")
ggplot(Hartnagel,aes(x=year,y=tfr))+
geom_line()
※전체코드
#1.
##1.
library(treemap)
st<-data.frame(state.x77)
st<-data.frame(st,stname=rownames(st))
windows(7,6)
treemap(st,
index=c('stname'),
vSize='Life.Exp',
vColor='Murder',
type='value',
title='USA states Life.Exp and Muder')
##2.
st['region']<-state.region
windows(7,6)
treemap(st,
index=c('region','stname'),
vSize='Life.Exp',
vColor='Murder',
type='value')
##3.
#Alabama
##4.
region.avg<-aggregate(st$Illiteracy,by=list(region=st$region),mean)
region.avg=region.avg[,2]
names(region.avg)<-1:4
odr<-rank(-region.avg)
odr
boxplot(st$Illiteracy~st$region,col=heat.colors(4)[odr])
##5.
solar.avg<-aggregate(airquality$Solar.R,by=list(month=airquality$Month),mean)
solar.avg<-solar.avg[,2]
names(solar.avg)<-1:5
odr<-rank(-solar.avg)
odr
boxplot(Solar.R~Month,data=airquality,col=heat.colors(5)[odr])
#2.
library(fmsb)
ds<-airquality[complete.cases(airquality),]
month.avg<-aggregate(ds$Solar.R,by=list(month=ds$Month),mean)
score<-month.avg[,2]
score.max<-rep(200,5)
score.min<-rep(100,5)
ds<-rbind(score.max,score.min,score)
ds<-data.frame(ds)
colnames(ds)<-c(5,6,7,8,9)
radarchart(ds)
#3.
library(fmsb)
SL<-mean(iris$Sepal.Length)
SW<-mean(iris$Sepal.Width)
PL<-mean(iris$Petal.Length)
PW<-mean(iris$Petal.Width)
score<-c(SL,SW,PL,PW)
score.max<-rep(6,4)
score.min<-rep(1,4)
ds<-rbind(score.max,score.min,score)
ds<-data.frame(ds)
colnames(ds)<-c('SL','SW','PL','PW')
radarchart(ds)
#4.
##1.
library(ggplot)
region.avg<-aggregate(States$pop,by=list(region=States$region),mean)
ggplot(region.avg,aes(x=region,y=x))+
geom_bar(stat='identity',
width=0.7, fill=rainbow(9))
##2.
ggplot(States,aes(x=dollars))+
geom_histogram(binwidth=0.5,fill='green',color='blue')+
coord_flip()
##3.
ggplot(States,aes(x=SATV,y=SATM))+
geom_point()
cor(States$SATM,States$SATV)
##4.
tmp<-subset(States,(region=='ESC')|(region=='PAC'))
ggplot(tmp,aes(x=SATV,y=SATM,color=region))+
geom_point()
##5.
#있다.
##6.
ggplot(States,aes(x=region,y=pay,fill=region))+
geom_boxplot()
boxplot(pay~region,data=States,col=rainbow(9))
##7.
ggplot(States,aes(x=region,y=percent,fill=region))+
geom_boxplot()+
ggtitle('지역별 SAT 응시 비율')
##8.
library(carData)
data("Hartnagel")
ggplot(Hartnagel,aes(x=year,y=tfr))+
geom_line()
'기타 > R' 카테고리의 다른 글
[R]KNN-Titanic (0) | 2021.11.26 |
---|---|
[R]난생처음 R코딩&데이터 분석-11장 연습문제 (0) | 2021.11.22 |
[R]난생처음 R코딩&데이터 분석-11장 개념 (0) | 2021.11.22 |
[R]난생처음 R코딩&데이터 분석-10장 연습문제 (0) | 2021.11.22 |
[R]난생처음 R코딩&데이터 분석-9장 연습문제 (0) | 2021.11.21 |