Archive

Archive for the ‘까먹지 말자’ Category

[R] Boxplot에 관측치의 수를 표시하는 방법

August 6th, 2008

Boxplot에서 관측치의 수를 나타내고 싶은 경우, 여러 가지 방법이 있겠지만, 함수 text() 혹은 mtext()를 사용하는 것이 가장 간단하지 않을까 싶습니다. 함수 text()가 그래프 안에 관측치의 수를 표시하는 반면 mtext()는 그래프의 축(axis)에 표시하는 차이가 있습니다.

> y < - rnorm(50)
> x < - factor(sample(letters[1:5],50,replace=T))
> boxplot(y~x, col="lightgray")
> text(1:5,rep(min(y),5),paste("n=",tapply(y,x,length)) )

Rplot.jpg
Read more…

R-Tips , ,

[R] 하나의 윈도에 2개의 그래프를 그리는 방법

July 29th, 2008

R에서 하나의 윈도에 2개 이상의 그래프를 겹쳐 그리려면 일반적으로 함수 curve()나 points()를 이용합니다. 하지만, 패키지에 따라서는 이 함수들을 제대로 사용할 수 없는 경우가 있습니다. 제가 경험한 바로는 ROC (receive operating characteristic) curve를 간단하게 그릴 수 있게 해주는 ROCR package에서는 points() 함수를 쓸 수가 없었습니다. 이 같은 경우 2개의 그래프를 겹쳐 그릴 수 있게 하기 위해서는 함수 par(new=TRUE)를 이용하면 됩니다.

> x1 < - rnorm(25, mean=0, sd=1)
> y1 < - dnorm(x1, mean=0, sd=1)

> y2 < - rnorm(25, mean=0, sd=1)
> y2 < - dnorm(x2, mean=0, sd=1)

> plot(x1, y1, type='p', xlim=range(x1,x2), ylim=range(y1,y2))
> points(x2, y2, type='p', col="red",xlim=range(x1,x2), ylim=range(y1,y2))

Rplot.jpg

> plot(x1, y1, type='p', xlim=range(x1,x2), ylim=range(y1,y2))
> par(new=TRUE)
> plot(x2, y2, type='p', col="red", axes=F, xlim=range(x1,x2), ylim=range(y1,y2))

2개 이상의 그래프를 겹쳐 그릴 때는 항상 x, y축의 범위에 주의해야 합니다.

R-Tips ,

R의 프락시 설정

July 24th, 2008

패키지를 네트웍에서 내려받아 바로 인스톨 할 때 일반 가정에서는 문제가 없지만, 규모가 큰 기업에서는 프락시 서버를 이용하는 경우가 있기 때문에 문제가 발생합니다. R에서는 OS에 따라서 프락시 설정에 차이가 있습니다.

MS Windows 통합환경

proxy.JPG

R을 실행할 때 –internet2 옵션을 이용하면 IE에서 설정한 프락시 설정을 그대로 이용할 수 있습니다.

Mac OS X

Mac OS X에서도 바이너리 형태의 통합 환경을 제공하지만 앞서 설명한 방법은 사용할 수 없습니다. 직접 R의 콘솔에서 다음과 같이 입력합니다.

[code] > Sys.putenv("http_proxy"="http://proxy_server/") [/code]

위 명령어를 콘솔에서 직접 입력하는 것보다 .Rprofile에 추가해 놓으면 매번 명령어를 입력해야 하는 불편함을 줄일 수 있습니다.

Unix

터미널에서 사용하는 쉘의 종류에 맞게 입력합니다.

  • tcsh의 경우 : [code] setenv http_proxy http://proxy_server/ [/code]
  • bash의 경우 : [code] export http_proxy http://proxy_server/ [/code]

R-Tips