[原]基於RStudio Webinars的統計報告Web化與工程化實踐總結

概述

本文根據 Rstudio Webinars 的教程資源對Rstudio流的R語言教程作一個彙總,能夠看到Rstudio對統計報告的Web化和工程化作了大量貢獻。感謝Rstudio的衆多工程師在開源的道路上的貢獻!css

謝溢輝:LaTex/Word的統計報告大逃亡之Rmarkdown生態

教學視頻地址html

在可交互、可複用的統計報告中,謝溢輝將介紹一衆R包,包括 knitr、rmarkdown、htmlwidgets、DT、leaflet以及shiny。node

快速標準的論文書寫

# $something$ 或者 $$something$$ 能夠解決數學公式的問題
# 利用 bib 文件和[@something] 能夠解決引用的問題
# 一樣的,你也能夠根據一些機構要求引入標準的模板。

參考謝溢輝的Rmarkdown論文
參考謝溢輝的bib文件python

屏蔽源碼

# ```{r echo=F}屏蔽源代碼
# ```{r, fig.width=5, fig.height=4} 設置配圖大小
# 腳註

代碼段內存共享

  • 利用cache選項複用代碼和數據mysql

Sys.sleep(5)
rnorm(1)

輸出其餘語言代碼

  • 利用engine選項選擇代碼引擎,驅動python、R、scala、Rcpp、bash、perl、node等git

x = 'hello, python
world!'
print(x)
print(x.split(' '))

交互式文檔

  • 利用yaml配置中的runtime選項github

---
author: Harry Zhu
output: html_document
runtime: shiny
---

同理,你也能夠選擇輸出slide、pdf或者word,你甚至能夠給html定製一個css皮膚。web

在我看來,rmarkdown是一款超越Zeppelin和iPython notebook的產品。
最總要的意義在於,學術工做者和工程師們不單單能夠擺脫格式對創做的束縛專一於代碼和文檔,更是隨意輸出pdf、slide、html、word、latex等多種格式,造成強有力的跨界衝擊。sql

謝溢輝本人有超過10年以上的LaTex使用經驗,他的rmarkdown和knitr造福了一代學術工做者,顯然LaTex和Word的體系在這種降維攻擊下已經風雨飄搖。數據庫

Hadley Wickham:R與大數據共舞

教學視頻地址

R是一門爲小數據探索和開發設計的語言,但在生產中R和大數據在一塊兒還能發揮做用嗎? 咱們定義數據量大於單機內存的數據爲大數據。讓咱們對比一下大數據與小數據的生命週期。

一個小數據分析項目的生命週期:

  • 闡明:熟悉數據、模板解決方案

  • 開發:建立有效模型

  • 產品化:自動化與集成

  • 發佈:社會化

一個大數據分析項目的生命週期:

  • 切片:抽取部分數據

  • 闡明:熟悉數據、模板解決方案

  • 開發:建立有效模型

  • 擴展:使用到整個數據集

  • 產品化:自動化與集成

  • 發佈:社會化

dplyr與數據讀取

教學視頻地址

Package DBMS
src_sqlite() SQLite
src_mysql MySQL
src_postgres PostgreSQL
library(bigquery) src_bigquery() Google BigQuery

顯示SQL

show_query(clean)

中間緩存

collapse()返回正在處理的結果

# 抽取 1% 的訓練數據
random <- clean %>%
 mutate(x = random()) %>%
 collapse() %>%
 filter(x <= 0.01) %>%
 select(-x) %>%
 collect()

數據存儲

copy_to() 根據本地的data frame 在數據庫建立一個表

# air爲connection名稱,query5爲data frame,"gains"爲表名
copy_to(air, query5, name = "gains")
# 關閉鏈接
rm(air)
# 垃圾收集器
gc()

Hadley Wickham:ETL

教學視頻地址

本節將討論一個有效的數據分析/數據科學問題框架,包括:

  • 數據讀取 readr/httr/DBI

  • 數據清洗 tidyr/jsonlite

  • 數據處理 dplyr/rlist

  • 數據可視化 ggplot2/ggvis

  • 數據建模 broom/modelr

broom:快速分析

install.packages("broom")
# 查看相關例子
browseVignettes(package="broom")

Hadley Wickham是RStudio的首席科學家,併兼任統計萊斯大學的兼職教授。他將一一介紹他認爲你應該知道的各類R包,並概述大數據和R,但主要是解釋爲何他相信你不該該擔憂大數據的問題。

modelr:建模工具

install.packages("modelr")

下面是modelr核心函數,能夠輔助抽樣、交叉驗證、殘差計算等等

modelr::%>%                 modelr::data_grid           modelr::mae                 modelr::rmse
modelr::add_predictions     modelr::fit_with            modelr::model_matrix        modelr::rsquare
modelr::add_predictors      modelr::formulae            modelr::na.warn             modelr::seq_range
modelr::add_residuals       modelr::formulas            modelr::qae                 modelr::spread_predictions
modelr::bootstrap           modelr::gather_predictions  modelr::resample            modelr::spread_residuals
modelr::crossv_kfold        modelr::gather_residuals    modelr::resample_bootstrap  modelr::typical
modelr::crossv_mc           modelr::geom_ref_line       modelr::resample_partition

garrettgman:packrat與虛擬化技術

教學視頻地址

你是否有過這樣與人合做開發的經歷:在本身機器上運行完美的R代碼,複製到另一臺同事的機器上運行就有不少R包須要從新安裝,有的R包甚至依賴於不一樣的版本?如今,在不使用Docker或Vagrant等全局虛擬化技術的條件下,只須要運用packrat包,就能夠保證你的R項目的依賴問題被很好的解決,一次運行,處處運行。

if(!require(packrat)){install.packages("packrat")}
getOption("repos") # 顯示代碼鏡像源
packrat:: bundle() # 打包當前環境並虛擬化
packrat:: unbundle(bundle="xxx.tar.gz",where=".") # 加載已經打包過的環境
packrat::opts$local.repos("~/R") # 設置本地repos爲路徑
packrat::install_local("pryr") # 從本地安裝

Hadley Wickham:Git與團隊協做

教學視頻地址

團隊協做:利用Git 和 GitHub,你能夠很輕鬆的與人協做,你再也不須要用郵件附件來備份文檔,或者在Dropbox上爲爭奪編輯權限而爭吵。相反,你能夠獨立工做,最後只須要合併大家的成果就能夠。

版本控制: Git 在咱們製造重大錯誤時都容許咱們回滾到以前的任意時間點。咱們也能夠回顧咱們以前所作的一塊兒歷史記錄,跟蹤bug的造成過程。

做爲分享主義者(sharism),本人全部互聯網發佈的圖文均聽從CC版權,轉載請保留做者信息並註明做者 Harry Zhu 的 FinanceR 專欄:https://segmentfault.com/blog...,若是涉及源代碼請註明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio商業使用請聯繫做者。

相關文章
相關標籤/搜索