시작하기무료로 시작하기

R 코드 청크 옵션

영상에서 몇 가지 R 코드 청크 옵션을 살펴봤습니다. R 코드 청크에는 이름을 붙일 수도 있어요. 특히 문서가 크거나 청크 내부에 오류가 있을 때 유용합니다. 예를 들어 RStudio에서 문서를 knit할 때 오류가 발생하면, 더 쉽게 어느 청크에서 생겼는지 찾을 수 있어요. 보고서의 일부 청크에는 이런 개념을 보여 주기 위해 이름이 붙어 있습니다. 청크 옵션은 청크 이름 뒤에 쉼표를 찍고 이어서 추가합니다. 예: {r name, option = value}

가장 자주 쓰는 청크 옵션 중 하나는 출력 표시를 제어하는 것입니다. 기본값으로 RMarkdown 문서에서는 메시지, 경고, 오류 등 모든 출력이 표시됩니다. 예를 들어 echo = FALSE 같은 옵션을 지정하면, 코드는 그대로 실행하면서도 R 코드 자체의 표시를 숨길 수 있습니다. 더 다양한 표시 옵션은 영상을 참고하세요.

세션이 중단되지 않도록 청크 이름과 청크 옵션 사이를 반드시 쉼표로 구분하세요.

이 연습은 강의의 일부입니다

Tidyverse로 데이터 소통하기

강의 보기

연습 안내

  • 14행에서 첫 번째 R 코드 청크에 message 옵션을 사용해 메시지를 숨겨, 패키지를 로드할 때 가끔 나오는 출력이 표시되지 않도록 하세요.
  • 64행defining_a_theme 청크는 사용자 지정 플롯으로 보고서를 풍부하게 하지만, 그 코드는 독자에게 그다지 중요하지 않습니다.
    • 모든 코드는 숨기되, R이 해당 코드를 여전히 실행하도록 하세요(해당 청크 옵션이 기억나지 않으면 영상을 다시 보세요).

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

{"my_document.Rmd":"---\ntitle: \"The reduction in weekly working hours in Europe\" \nsubtitle: \"Looking at the development between 1996 and 2006\"\nauthor: \"Insert your name here\"\noutput: html_document\n---\n\n## Summary \n\nThe **International Labour Organization (ILO)** has many [data sets](http://www.ilo.org/global/statistics-and-databases/lang--en/index.htm) on working conditions. For example, one can look at how weekly working hours have been decreasing in many countries of the world, while monetary compensation has risen. In this report, *the reduction in weekly working hours* in European countries is analysed, and a comparison between 1996 and 2006 is made. All analysed countries have seen a decrease in weekly working hours since 1996 – some more than others.\n\n## Preparations \n\n```{r loading_packages}\nlibrary(dplyr)\nlibrary(ggplot2)\nlibrary(forcats)\n```\n\n## Analysis\n\n### Data\n\nThe herein used data can be found in the [statistics database of the ILO](http://www.ilo.org/ilostat/faces/wcnav_defaultSelection;ILOSTATCOOKIE=ZOm2Lqrr-OIuzxNGn2_08bNe9AmHQ1kUA6FydqyZJeIudFLb2Yz5!1845546174?_afrLoop=32158017365146&_afrWindowMode=0&_afrWindowId=null#!%40%40%3F_afrWindowId%3Dnull%26_afrLoop%3D32158017365146%26_afrWindowMode%3D0%26_adf.ctrl-state%3D4cwaylvi8_4). For the purpose of this course, it has been slightly preprocessed.\n\n```{r loading_data}\nload(url(\"http://s3.amazonaws.com/assets.datacamp.com/production/course_5807/datasets/ilo_data.RData\"))\n```\n\n```{r generating_summary_statistics}\n# Some summary statistics\nilo_data %>%\n  group_by(year) %>%\n  summarize(mean_hourly_compensation = mean(hourly_compensation),\n            mean_working_hours = mean(working_hours))\n```\n\nAs can be seen from the above table, the average weekly working hours of European countries have been descreasing since 1980.\n\n### Preprocessing\n\nThe data is now filtered so it only contains the years 1996 and 2006 – a good time range for comparison. \n\n```{r}\nilo_data <- ilo_data %>%\n  filter(year == \"1996\" | year == \"2006\")\n  \n# Reorder country factor levels\nilo_data <- ilo_data %>%\n  # Arrange data frame first, so last is always 2006\n  arrange(year) %>%\n  # Use the fct_reorder function inside mutate to reorder countries by working hours in 2006\n  mutate(country = fct_reorder(country,\n                               working_hours,\n                               last))\n```  \n\n### Results\n\nIn the following, a plot that shows the reduction of weekly working hours from 1996 to 2006 in each country is produced.\n\nFirst, a custom theme is defined.\n\n```{r defining_a_theme}\n# Better to define your own function than to always type the same stuff\ntheme_ilo <- function(){\n  theme_minimal() +\n  theme(\n    text = element_text(family = \"Bookman\", color = \"gray25\"),\n    plot.subtitle = element_text(size = 12),\n    plot.caption = element_text(color = \"gray30\"),\n    plot.background = element_rect(fill = \"gray95\"),\n    plot.margin = unit(c(5, 10, 5, 10), units = \"mm\")\n  )\n}\n```  \n\nThen, the plot is produced. \n\n```{r}\n# Compute temporary data set for optimal label placement\nmedian_working_hours <- ilo_data %>%\n  group_by(country) %>%\n  summarize(median_working_hours_per_country = median(working_hours)) %>%\n  ungroup()\n\n# Have a look at the structure of this data set\nstr(median_working_hours)\n\n# Plot\nggplot(ilo_data) +\n  geom_path(aes(x = working_hours, y = country),\n            arrow = arrow(length = unit(1.5, \"mm\"), type = \"closed\")) +\n  # Add labels for values (both 1996 and 2006)\n  geom_text(\n        aes(x = working_hours,\n            y = country,\n            label = round(working_hours, 1),\n            hjust = ifelse(year == \"2006\", 1.4, -0.4)\n          ),\n        # Change the appearance of the text\n        size = 3,\n        family = \"Bookman\",\n        color = \"gray25\"\n   ) +\n  # Add labels for country\n  geom_text(data = median_working_hours,\n            aes(y = country,\n                x = median_working_hours_per_country,\n                label = country),\n            vjust = 2,\n            family = \"Bookman\",\n            color = \"gray25\") +\n  # Add titles\n  labs(\n    title = \"People work less in 2006 compared to 1996\",\n    subtitle = \"Working hours in European countries, development since 1996\",\n    caption = \"Data source: ILO, 2017\"\n  ) +\n  # Apply your theme \n  theme_ilo() +\n  # Remove axes and grids\n  theme(\n    axis.ticks = element_blank(),\n    axis.title = element_blank(),\n    axis.text = element_blank(),\n    panel.grid = element_blank(),\n    # Also, let's reduce the font size of the subtitle\n    plot.subtitle = element_text(size = 9)\n  ) +\n  # Reset coordinate system\n  coord_cartesian(xlim = c(25, 41))\n```\n\n\n"}
코드 편집 및 실행