#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