#title 출력내용 저장하기
[[TableOfContents]]

==== 개요 ====
다음과 같이 회귀분석을 실시했을 때 summary 함수를 이용하면 분석결과를 볼 수 있다. 이런 경우 분석결과를 화면에 출력하는 대신 파일에 저장하고 싶다면 어떻게 해야할까?
{{{
> swiss.lm <- lm(Fertility ~ Examination, swiss)
> summary(swiss.lm)
Call:
lm(formula = Fertility ~ Examination, data = swiss)

Residuals:
     Min       1Q   Median       3Q      Max 
-25.9375  -6.0044  -0.3393   7.9239  19.7399 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  86.8185     3.2576  26.651  < 2e-16 ***
Examination  -1.0113     0.1782  -5.675 9.45e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 9.642 on 45 degrees of freedom
Multiple R-Squared: 0.4172,	Adjusted R-squared: 0.4042 
F-statistic: 32.21 on 1 and 45 DF,  p-value: 9.45e-07 
}}}
가장 간단한 방법은 마우스로 긁어서 Copy & Paste 하는 것이지만 결과의 내용이 길때는 불편할 뿐만 아니라 자동화할 수가 없기 때문에 많은 분석을 실시할 때는 쓰기 어렵다.

==== sink ====
sink 함수는 R에서 출력되는 내용들을 모두 파일에 저장한다. 사용법은 간단하다. sink(파일명)이라고 입력하면 그 이후 모든 출력은 해당 파일에 저장된다. sink()라고 입력하면 다시 화면에 출력된다.

sink는 이미 같은 이름의 파일이 있으면 새로 덮어쓴다. 만약 기존 파일의 내용에 이어서 출력 내용을 저장하고 싶다면 sink(파일명, append=T)와 같이 입력한다.

아래는 회귀분석 결과를 lm.txt 파일에 저장하는 예제다.
{{{
> sink('lm.txt')
> summary( lm )
> sink()
}}}

==== capture.output ====
capture.output 함수는 단 하나의 명령의 결과를 character형 벡터로 저장한다. 아래는 회귀분석 결과를 lm.txt 파일에 저장하는 예제이다.
{{{
> lm.summary <- capture.output( summary(lm) )
> cat(lm.summary, file='lm.txt', sep='\n')
}}}

==== 출처 ====
 * http://www.remantu.com/r/tutorial/save-output