本文根據 Rstudio Webinars 的教程資源對Rstudio流的R語言教程作一個彙總,能夠看到Rstudio對統計報告的Web化和工程化作了大量貢獻。感謝Rstudio的衆多工程師在開源的道路上的貢獻!css
教學視頻地址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的體系在這種降維攻擊下已經風雨飄搖。數據庫
R是一門爲小數據探索和開發設計的語言,但在生產中R和大數據在一塊兒還能發揮做用嗎? 咱們定義數據量大於單機內存的數據爲大數據。讓咱們對比一下大數據與小數據的生命週期。
一個小數據分析項目的生命週期:
闡明:熟悉數據、模板解決方案
開發:建立有效模型
產品化:自動化與集成
發佈:社會化
一個大數據分析項目的生命週期:
切片:抽取部分數據
闡明:熟悉數據、模板解決方案
開發:建立有效模型
擴展:使用到整個數據集
產品化:自動化與集成
發佈:社會化
Package | DBMS | |
---|---|---|
src_sqlite() | SQLite | |
src_mysql | MySQL | |
src_postgres | PostgreSQL | |
library(bigquery) src_bigquery() | Google BigQuery |
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()
本節將討論一個有效的數據分析/數據科學問題框架,包括:
數據讀取 readr
/httr
/DBI
數據清洗 tidyr
/jsonlite
數據處理 dplyr
/rlist
數據可視化 ggplot2
/ggvis
數據建模 broom
/modelr
install.packages("broom") # 查看相關例子 browseVignettes(package="broom")
Hadley Wickham是RStudio的首席科學家,併兼任統計萊斯大學的兼職教授。他將一一介紹他認爲你應該知道的各類R包,並概述大數據和R,但主要是解釋爲何他相信你不該該擔憂大數據的問題。
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
你是否有過這樣與人合做開發的經歷:在本身機器上運行完美的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") # 從本地安裝
團隊協做:利用Git 和 GitHub,你能夠很輕鬆的與人協做,你再也不須要用郵件附件來備份文檔,或者在Dropbox上爲爭奪編輯權限而爭吵。相反,你能夠獨立工做,最後只須要合併大家的成果就能夠。
版本控制: Git 在咱們製造重大錯誤時都容許咱們回滾到以前的任意時間點。咱們也能夠回顧咱們以前所作的一塊兒歷史記錄,跟蹤bug的造成過程。
做爲分享主義者(sharism),本人全部互聯網發佈的圖文均聽從CC版權,轉載請保留做者信息並註明做者 Harry Zhu 的 FinanceR 專欄:https://segmentfault.com/blog...,若是涉及源代碼請註明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio商業使用請聯繫做者。