8.3 R Markdown 재현성

우리의 분석이 재현 가능하다고 말할 때, 우리는 보고서를 다시 실행해도 과거와 똑같은 결과를 얻을 수 있어야 함을 의미한다. 우리의 분석은 명령 줄에 입력 한 임의의 명령에 의존해서는 안된다. 분석이 재현 가능한지 확인하기 위해 source() 명령을 실행하고 expectancy 데이터 세트를 가져 오는 데 사용한 파일을 불러온다. r 코드 블록을 이것으로 바꾸고 데이터 세트의 요약을 포함한다.

위의 코드 블록에서 몇 가지 작업을 수행했다. 레이블을 “get_data”로 변경하고 소스를 사용하여 “process_data.R”에 저장된 모든 코드를 실행하고 expectancy 데이터 세트의 요약을 표시한다. Markdown 파일을 knit 하면 cars 데이터 세트 대신 expectancy 데이터 세트의 요약이 나타난다.

더 중요한 것은 R Markdown 문서의 다른 코드가 이전에 했던 것과 같은 방식으로 expectancy 데이터 세트에서 참조할 수 있다는 것이다. 이전에 따랐던 모든 데이터 처리 규칙은 새 출력 문서를 만들 때마다 실행된다.

데이터 시각화 장에서 했던 것처럼 사용자에게 데이터 세트를 간략하게 보여줄 수 있다. 마지막 부분에서 코드를 복사하여 다음과 같이 코드 블록으로 감쌀 수 있다.

## `expectancy` 데이터 세트 샘플

`expectancy` 데이터 세트의 일부 내용을 확인하기 위한 위젯을 아래와 같이 확인할 수 있다.

여기에서의 분석에서 나중에 검토될 데이터 세트를 보여주고 있다.

​```{r}
library(DT)
datatable(expectancy,
options = list(pageLength = 5))
​```

여기서 우리는 그림 8.6에서 볼 수 있는 디스플레이를 생성하기 위해 r 코드 블록과 함께 Markdown 주석을 혼합한다.

R Markdown 문서의 HTML 데이터 테이블 위젯

그림 8.6: R Markdown 문서의 HTML 데이터 테이블 위젯

마지막으로, 수년에 걸친 기대 수명 플롯을 추가해 보자. 이번에는 사용자로부터 r 코드 블록을 숨기고 싶을 수 있으므로 이러한 두 가지 지시문 echo = FALSEmessage = FALSE를 포함한다.

## 기대 수명 플롯

아래의 플롯은 모든 성별에 대한 연도별 기대 수명을 보여주고 있다.

​```{r}
library(plotly)
i_plot <- expectancy %>%
          filter(race == "All Races") %>%
          ggplot(aes(year, life_expectancy)) +
          geom_line(aes(color = sex))
ggplotly(i_plot)
​```

보다시피, 1900년부터 2015년까지 모든 사람의 기대 수명이 증가하였다. 여성은 남성보다 기대 수명이 더 길고 두 그룹의 차이를 유지하면서 동일한 상승 추세를 보이고 있다.

첫 번째 지시문은 코드가 표시되지 않도록 하고 두 번째 지시문은 문서에서 라이브러리를 로드하기 때문에 나타날 수있는 모든 메시지를 방지한다. 결과는 그림 8.7에 나와 있다.

R Markdown 문서의 Plotly 위젯

그림 8.7: R Markdown 문서의 Plotly 위젯