[原]基于RStudio Webinars的R語言教程匯總
來自: https://segmentfault.com/a/1190000004506149
概述
本文根據 Rstudio Webinars 的教程資源對Rstudio流的R語言教程做一個匯總,可以看到Rstudio對統計報告的Web化和工程化做了大量貢獻。感謝Rstudio的眾多工程師在開源的道路上的貢獻!
謝溢輝:LaTex/Word的統計報告大逃亡之Rmarkdown生態
在可交互、可復用的統計報告中,謝溢輝將介紹一眾R包,包括 knitr、rmarkdown、htmlwidgets、DT、leaflet以及shiny。
快速標準的論文書寫
# $something$ 或者 $$something$$ 可以解決數學公式的問題利用 bib 文件和[@something] 可以解決引用的問題
同樣的,你也可以根據一些機構要求引入標準的模板。</pre>
屏蔽源碼
# ```{r echo=F}屏蔽源代碼```{r, fig.width=5, fig.height=4} 設置配圖大小
腳注</pre>
代碼段內存共享
-
利用 cache 選項復用代碼和數據
Sys.sleep(5) rnorm(1)
輸出其他語言代碼
-
利用 engine 選項選擇代碼引擎,驅動python、R、scala、Rcpp、bash、perl、node等
x = 'hello, python world!' print(x) print(x.split(' '))
交互式文檔
-
利用 yaml 配置中的 runtime 選項
--- author: Harry Zhu output: html_document runtime: shiny ---
同理,你也可以選擇輸出slide、pdf或者word,你甚至可以給html定制一個css皮膚。
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()</pre>
Hadley Wickham:ETL
本節將討論一個有效的數據分析/數據科學問題框架,包括:
-
數據讀取 readr / httr / DBI
-
數據清洗 tidyr / jsonlite
-
數據處理 dplyr / rlist
-
數據可視化 ggplot2 / ggvis
-
數據建模 broom
broom:快速分析
install.packages("broom")查看相關例子
browseVignettes(package="broom")</pre>
Hadley Wickham是RStudio的首席科學家,并兼任統計萊斯大學的兼職教授。他將一一介紹他認為你應該知道的各種R包,并概述大數據和R,但主要是解釋為什么他相信你不應該擔心大數據的問題。
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的形成過程。
</div>