2016年8月26日 星期五
2016年8月25日 星期四
鎮龍涎兮別離悵
在 RStudio 中製作 Markdown 並將成果發布成各種文件
R 真的是一種很好用的語言,因為它的 opensource 特性,養出了一群怪物使用者。
怎麼說呢?通常我們遇到一個全新的問題,往往必須妥協而尋求全新的工具來解決這個問題。但是 R 語言的使用者選擇的,卻是寫出更多千奇百怪的套件來完成這件事情,搞得 R 已經差不多包山包海啥都可以做了……壞處是養成像我這種人凡事都依賴 R 來解決,學什麼 Javascript 、 CSS ?我用 Shiny 就可以產出精美的網頁了!(好孩子不要學,客製化永遠都是有極限的)
上一篇介紹了 Markdown ,這一篇文章就來談談,透過 R 語言的 IDE 環境 RStudio 也可以製作 Markdown,除了上篇提到的文字、排版功能之外,還能秀出 Project 的程式碼,可以分段產出結果,給讀者看到每一段程式碼的功能,並且添加文字描述,成為一篇精美的報告或講義!
更厲害的是,只需要點點你的食指,就可以選擇這份報告的產出格式,PDF、WORD、HTML 甚至 投影片都可以!也可以透過 RStudio 提供的 RPubs 平台發佈你的報告,把東西丟在雲端上看起來就是很厲害的啦~
說那麼多還是搞不清楚在幹麻,直接先來看看怎麼使用好了。
建立 Markdown 文件
打開 RStudio ,點選新增文件的按鈕,選擇 R Markdown
這時候會出現選單,可對自己的文件命名、編輯作者名稱,還有要產出的格式,而左邊可以選擇是要產出文件 Document 、投影片 Presentation 或者網頁 Shiny。
這邊我們先選擇 HTML 格式的文件。
設定好之後, RStudio就會自動載入 Markdown 的 Template囉
Markdown 的語法在上一篇文章中有稍微介紹過,在這邊比較特別的是,要把程式碼寫在 ```
所包起來的區域裡面,執行這份 Markdown 時就會執行程式碼區域裡的 code 並產出執行結果。
以下拿很威的資料視覺化套件 plotly 挑幾個簡單的範例來做示範:
編輯 Markdown 的原始碼如下:
---
title: "Present"
author: "Miao Chien"
date: "2016年8月25日"
output: html_document
---
## 匯出精美的圖表
```{r diamonds, message=FALSE}
install.packages("plotly")
install.packages("ggplot2")
library(plotly)
library(ggplot2)
set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
plot_ly(d, x = ~carat, y = ~price, color = ~carat,
size = ~carat, text = ~paste("Clarity: ", clarity))
```
```{r diamonds2, message=FALSE}
### several box plots
plot_ly(ggplot2::diamonds, y = ~price, color = ~cut, type = "box")
```
```{r map, message=FALSE}
df <-
read.csv('https://raw.githubusercontent.com/plotly/datasets/master/2014_world_gdp_with_codes.csv')
# light grey boundaries
l <- list(color = toRGB("grey"), width = 0.5)
# specify map projection/options
g <- list(
showframe = FALSE,
showcoastlines = FALSE,
projection = list(type = 'Mercator')
)
p <- plot_geo(df) %>%
add_trace(
z = ~GDP..BILLIONS., color = ~GDP..BILLIONS., colors = 'Blues',
text = ~COUNTRY, locations = ~CODE, marker = list(line = l)
) %>%
colorbar(title = 'GDP Billions US$', tickprefix = '$') %>%
layout(
title = '2014 Global GDP<br>Source:<a href="https://www.cia.gov/library/publications/the-world-factbook/fields/2195.html">CIA World Factbook</a>',
geo = g
)
plot(p)
```
執行 Markdown
編輯完成之後點選 Knit 按鍵,可以選擇匯出格式
看看產出結果:HTML
試看看產出投影片
我們可以新增一個 Markdown 文件,改選擇 Presentation ,把一樣的程式碼貼入這個新的 Markdown 範本裡。
貼好之後可以看到 knit 按鈕的下拉選單變成 ioslides 、 Slidy 、Beamer 等選項
來看看匯出的成果會長什麼樣子吧:ioslide
雲端分享
RStudio提供了免費的分享平台,可以讓所有人將自己的成果 Publish 上去,只需要在 Knit 之後點選右上角小小的 Publish
此時會跳出警告視窗,基於分享的理念,放到 rPub 上的文件全部都是公開的喔
註冊好會員之後會得到專屬於你的網域,再將這份文件命名之後,就會得到他的雲端網址囉。大概會長這樣子
看看下面的 Toolbar ,還有 的功能可以和讀者互動,是不是很好用呢!
知道了這個工具之後,未來要做成果報告、教學,再也不用辛苦的複製貼上做 powerpoint ,也不用在學生面前打開 RStudio 辛苦的一行一行執行成果了對吧!趕快來用用看吧~