지난 포스팅에서

 

- R 데이터 객체를 외부 파일로 내보내서 저장하기 write.table()

 

- R 분석 결과를 외부 파일로 내보내서 저장하기 cat()

 

을 알아보았습니다.

 

 

 R 분석 결과 외부 파일로 저장하기 : capture.output()

 

이번 포스팅에서는 R 분석 결과 외부 파일로 저장하기 : capture.output()에 대해서 알아보도록 하겠습니다. 분석 결과를 외부로 내보내서 저장하는 cat()과 caputre.output()의 차이점은 cat()이 벡터를 다룬다면 capture.output()은 리스트를 다룬다는 점입니다.

 

아래 함수가

누구를 

어떤 데이터 구조를

무슨 일을 하는가? 

 wriite.table()

 데이터 객체

 데이터 프레임

(data frame)

 텍스트 파일로 외부 저장

 cat()  분석 결과  벡터 (vector)

 텍스트 파일로 외부 저장 

 capture.output()

 분석 결과  리스트 (list)   텍스트 파일로 외부 저장

 

 

capture.output() 함수를 아래 실습을 따라하면서 설명하도록 하겠습니다.

 

 

> ## 10명의 키, 몸무게로 데이터 프레임 만들기

> height <- c(175, 159, 166, 189, 171, 173, 179, 167, 182, 170)
> weight <- c(62, 55, 59, 75, 61, 64, 63, 65, 70, 60)
> d.f_h_w <- data.frame(height, weight)
> 

> ## 키와 몸무게 1차 선형 회귀모형 만들기

> lm_fit_h_w <- lm(weight ~ height, d.f_h_w)
> summary(lm_fit_h_w)
 

Call: lm(formula = weight ~ height, data = d.f_h_w) Residuals: Min 1Q Median 3Q Max -3.8614 -1.4780 -0.1812 1.1986 5.1787 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -38.1534 18.2437 -2.091 0.069874 . height 0.5867 0.1053 5.573 0.000527 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.727 on 8 degrees of freedom Multiple R-squared: 0.7952, Adjusted R-squared: 0.7696 F-statistic: 31.06 on 1 and 8 DF, p-value: 0.0005268

 

위에 만든 (1) 데이터 프레임과 (2) 회귀모형 적합 결과 summary(lm_fit_h_w) 를 텍스트 파일로 저장해보도록 하겠습니다.

 

  • "Dataset is as follows: " 문구 쓰고, lm_fit_h_w.txt 파일 생성

> cat( "Dataset is as follows; ",
+      "\n", 
+      "\n", 
+      file = "C:/Users/user/Documents/R/lm_fit_h_w.txt") 

 

 

 

  • lm_fit_h_w.txt 파일에 다가 lm_fit_h_w 데이터 프레임 데이터를 붙여서 저장하기 

> write.table(d.f_h_w, "C:/Users/user/Documents/R/lm_fit_h_w.txt", 
+             sep = ",", 
+             row.names = FALSE, 
+             quote = FALSE, 
+             append = TRUE)
Warning message:
In write.table(d.f_h_w, "C:/Users/user/Documents/R/lm_fit_h_w.txt",  :
  열의 이름들을 파일에 추가합니다 

 

 

 

  • "Summary of linear regression model is " 문구 삽입하기 

 

> cat( "Summary of linear regression model is ",
+      "\n", 
+      "\n", 
+      file = "C:/Users/user/Documents/R/lm_fit_h_w.txt", 
+      append = TRUE)

 

 

 

  • summary(lm_fit_h_w) 결과를 lm_fit_h_w.txt 파일에 붙여서 저장하기
    - cat() 함수를 쓰면 'list' 데이터 구조는 처리할 수 없다는 에러 메시지 발생

> cat( "\n", 
+      "\n", 
+      summary(lm_fit_h_w), 
+      file = "C:/Users/user/Documents/R/lm_fit_h_w.txt", 
+      append = TRUE)
Error in cat(list(...), file, sep, fill, labels, append) : 
  argument 3 (type 'list') cannot be handled by 'cat' 

 

 

               - 이때는 capture.output() 함수를 사용하면 됨

 

> capture.output(summary(lm_fit_h_w), 
+                file = "C:/Users/user/Documents/R/lm_fit_h_w.txt", 
+                append = TRUE) 

 

 

키와 몸무게의 1차 선형회귀모형의 summary() 결과가 텍스트 파일에 append 되어 저장되었음을 확인할 수 있습니다.

 

이번 포스팅이 도움이 되었다면 아래의 '공감 ~♡' 단추를 꾸욱 눌러주세요.^^

 

728x90
반응형
Posted by Rfriend
,