5주

From Biocourse

Jump to: navigation, search
boacelgetcr

## 자료를 분할하여 표현한 그림.

> library(MASS)                                                                                                                ## MASS라는 library를 불러온다.

> data(geyser)                                                                                                                  ## geyser라는 자료를 불러온다.

> attach(geyser)                                                                                                               ## geyser 자료를 변수별로 활성화 시킨다.

> plot(waiting,duration,type="n",ylab="Eruption Length",xlab="Waiting Time for the Eruption")

## geyser 변수인 waiting과 duration을 이용하여 그림을 그린다.
## type="n"옵션은 자료을 그리지 마라는 옵션이다. 
## y축 레벨은 Eruption Length로, x축 레벨은 Waiting Time for the Eruption 으로 나타낸다.

> title("Old Faithful Ceyser Data \n Waiting Time and Eruption Length")                          ## 그림의 타이틀을 입력한다.

> abline(h=3.1)                                                                                                                  ## y값이 3.1에 수평선을 그린다.

> abline(v=67)                                                                                                                   ## x값 67에 수직선을 그린다.

> subset1<-(waiting<67)&(duration<3.1)                                                                          

## waiting과 duration을 다음 조건에 만족여부를 subset1에 논리자료 입력한다.

> subset2<-(waiting<67)&(duration>3.1)

## waiting과 duration을 다음 조건에 만족여부를 subset2에 논리자료 입력한다.

> subset3<-(waiting>67)&(duration<3.1)

## waiting과 duration을 다음 조건에 만족여부를 subset3에 논리자료 입력한다.

> subset4<-(waiting>67)&(duration>3.1)

## waiting과 duration을 다음 조건에 만족여부를 subset4에 논리자료 입력한다.

> points(waiting[subset1],duration[subset1],pch="A",col=1)

## waiting과 duration에서 subset1에 만족된 값만 A로 그림에 그린다.

> points(waiting[subset2],duration[subset2],pch="B",col=2)

## waiting과 duration에서 subset2에 만족된 값만 A로 그림에 그린다.

> points(waiting[subset3],duration[subset3],pch="C",col=3)

## waiting과 duration에서 subset3에 만족된 값만 A로 그림에 그린다.

> points(waiting[subset4],duration[subset4],pch="D",col=4)

## waiting과 duration에서 subset4에 만족된 값만 A로 그림에 그린다.

> arrows(105,1,max(waiting),duration[waiting==max(waiting)],open=T)

 ## 그러진 값에 화살표를 그려 넣는다.

image:r-5-1.jpeg



 ## T분포에서 기각역 그림. ( 자료 : barley.txt )


> barley = read.table("c://barley.txt",sep="\t",header=T)                                       ## 자료를 C 디렉토리에서 읽어서 barley로 저정한다.

> attach(barley)                                                                                                     ## barley 자료를 활성화 시킨다.

> x<-yield[site=="Crookston"]                                                                                ## site 가 Crookston인 자료의 yield값을 x에 저장

> y<-yield[site=="Morris"]                                                                                      ## site 가 Morris인 자료의 yield값을 y에 저장

> df<-length(x)-1                                                                                                   ## x의 길이 -1 을 df에 저장한다.

> alpha<-0.05                                                                                                       ## 0.05를 alpha에 저장한다.

> bound.left<- -3                                                                                                   ## -3을 bound.left에 저장한다.

> bound.right<- 3                                                                                                  ##  3을 bound.right에 저장한다.

> xaxis<-seq(bound.left,bound.left,length=1000)                                                ## bound.left에서 bound.left까지를 1000등분한다.

> yaxis<-dt(xaxis,df)                                                                                             ## xaxis의 값을 t 분포 ìžìœ ë„ê°€ df인 density를 구한다.

> plot(xaxis,yaxis,type="l",xlab="",ylab="t density")                                             ## xaxis와 yaxis로 그림을 그린다. 

> critical.left<-qt(alpha/2,df)                                                                          

## alpha/2를 t분포에서 자유도가 df인 qantile 값을 구한다.                      

> critical.right<-qt(1-alpha/2,df)                                                                            

## 1 - alpha/2를 t분포에서 자유도가 df인 qantile 값을 구한다. 

> xaxis<-seq(critical.left,critical.right,length=100)

## critical.left에서 critical.right까지를 100등분한다.

> yaxis<-c(dt(xaxis,df),0,0)                                                                              ## yaxis의 값을 정의한다.

> xaxis<-c(xaxis,critical.left,bound.left)                                                            ## xaxis의 값을 정의한다.

> polygon(xaxis,yaxis,density=25)                                                                

 ## polygon을 이용하여 아래 그림 처럼 구간을 색으로 채운다.

> xaxis<-seq(critical.right,bound.right,length=100)                                        ## critical.right에서 critical.right까지를 100등분한다.

> yaxis<-c(dt(xaxis,df),0,0)                                                                             ## yaxis의 값을 정의한다.

> xaxis<-c(xaxis,bound.right,critical.right)                                                      ## xaxis의 값을 정의한다.

> polygon(xaxis,yaxis,density=25)

 ## polygon을 이용하여 아래 그림 처럼 구간을 색으로 채운다.

> test.stat<-t.test(x,y,paired=T,conf.level=1-alpha)$statistic                        

## t.test 쌍 자료 분석 결과에서 신뢰구간 1-alpha값을 저장한다.

> points(test.stat,0.01,cex=1.5,pch="*")                                                       ## test.stat를 점으로 표현한다.

> text(test.stat,0.04,"paired test statistics",adj=1)                                        ## 그림에 paired test statistics를 삽입한다.

> test.stat<-t.test(x,y,paired=F,conf.level=1-alpha)$statistic                      

## t.test ë‘ 자료 분석 결과에서 신뢰구간 1-alpha값을 저장한다.

> points(test.stat,0.01,cex=1.5,pch="*")                                                        ## test.stat를 점으로 표현한다.

> text(test.stat,0.04,"unpaired",adj=0)                                                           ## 그림에 unpaired를 삽입한다.

> text(bound.left, 0.08,"rejection \n region",adj=0)                                        ## 그림에 rejection  region를 삽입한다.

> text(bound.right,0.08,"rejection \n region",adj=1)                                      ## 그림에 rejection  region를 삽입한다.

> text((bound.left+bound.right)/2,0.16,"acceptance region")                        ## 그림에 acceptance region를 삽입한다.

> xaxis<-c(rep(critical.left,2),rep(critical.right,2))

> yaxis<-c(0.12,0.14,0.14,0.12)

> lines(xaxis,yaxis)

image:r-5-2.jpeg


 

> library(MASS)                                                                                   ## MASS library를 부른다.

> data(geyser)                                                                                     ## geyser자료를 부른다.

> frame()                                                                                             ## 그림을 그릴수 있는 창을 띠운다.

> par(fig=c(0.0,0.7,0.0,0.7),mar=c(4,4,2,2),cex=0.7)                         ## 띠운 창에 파티션을 나눈다. 

> plot(geyser$waiting,geyser$duration,pch="*",xlab="Waiting Time",ylab="Duration of Eruption")

## 나뉜 파티선에 그림을 그린다.

> title("\n Old Faithful Geyser Data Set",cex=0.5)                              ## 타이틀을 넣는다.

> par(new=T)                                                                                     ## 띠운 창을 그대로 유지해서 그림을 추가한다.

> par(fig=c(0.0,0.7,0.7,1),mar=c(2,4,2,2),cex=0.7)                           ## 띠운 창에 파티션을 나눈다. 

> hist(geyser$waiting)                                                                       ## 나뉜 파티선에 histogram그림을 그린다.  

> par(new=T)                                                                                   ## 띠운 창을 그대로 유지해서 그림을 추가한다.

> par(fig=c(0.7,1,0,1),mar=c(4,3,2,2),cex=0.7)                                ## 띠운 창에 파티션을 나눈다. 

> boxplot(geyser$duration)                                                              ## 나뉜 파티선에 boxplot그림을 그린다.  

image:r-5-3.jpeg

 


 

다른 예제 


> plot(x,sin(x)+cos(x),xlab="x values",ylab="y values",type="l")
> lines(x,sin(x),lty=3,col=3)
> lines(x,cos(x),lty=2,col=2)
> title("Trigonometric Functions","sin(x),cos(x),and sin(x)+cos(x)")

image:r-5-4.jpeg 



> z=seq(0,2*pi,length=1000)
> x=sin(z)
> y=cos(z)
> par(pin=c(2,2))
> plot(x,y,type="l",axes=F,xlab="",ylab="")
> title("A circle")


image:r-5-5.jpeg 



> z=seq(6*pi,32*pi,length=1000)
> x=sin(z)/(0.1*z)
> y=cos(z)/(0.1*z)
> plot(x,y,type="l",main="A spiral with 13 windings",axes=F,xlab="",ylab="")

image:r-5-6.jpeg 



> par(mfrow=c(2,2))
> x=seq(0,2*pi,length=1000)
> plot(sin(3*x),sin(6*x),type="l")
> plot(sin(3*x),sin(8*x),type="l")
> plot(sin(3*x),sin(11*x),type="l")
> plot(sin(7*x),sin(8*x),type="l")

image:r-5-7.jpeg