2016年8月25日 星期四

在 RStudio 中製作 Markdown 並將成果發布成各種文件

R 真的是一種很好用的語言,因為它的 opensource 特性,養出了一群怪物使用者。

RStudio

怎麼說呢?通常我們遇到一個全新的問題,往往必須妥協而尋求全新的工具來解決這個問題。但是 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 辛苦的一行一行執行成果了對吧!趕快來用用看吧~


參考資料


0 comments:

張貼留言