如何高效地使用RStudio?
- 熟悉快捷鍵
- 習慣Vim的可以用Vim模式編輯
- 選擇舒服的配色方案和字體字型大小
- 用來寫R Markdown文檔渲染為HTML, PDF, Word
- 學會如何用斷點等功能進行調試
[原]Sparklyr與Docker的推薦系統實戰 - FinanceR - 知乎專欄[原]R語言工程化實踐:RStudio Server環境快速配置教程[原]基於RStudio Webinars的統計報告Web化與工程化實踐總結介紹
RStudio Server 是 RStudio 公司打造的一款基於 Web 的開源編輯器,如果你熟悉 RStudio的桌面版本,那麼使用RStudio Server對你來說基本上沒什麼難度。
在實際的工程中,我們的伺服器大多是基於Linux的,比如常見的 ubuntu、centos 等。這些操作系統有時並不提供圖形化界面,這時候RStudio的伺服器版本就派上用場了。啟動RStudio Server後,進入在瀏覽器中進入某一個頁面後就可以像桌面版一樣使用RStudio編輯器。當R的代碼在伺服器上出現bug了,線上的hotfix是在所難免的,這時候必然會用到 RStudio Server 應個急。
這一次,我們將繼續利用Docker神器,快速初始化RStudio Server環境的配置,並結合Git實現代碼的版本控制。
準備一個 Ubuntu 伺服器
第一步:安裝 RStudio Server
首先,我們通過docker 安裝一個標準的RStudio Server
docker pull index.tenxcloud.com/7harryprince/sparkr-rstudio
docker run -d -p 8787:8787 index.tenxcloud.com/7harryprince/sparkr-rstudio
這樣在你的電腦的8787埠就可以訪問到rstudio的登陸界面了。
第二步:初始化 RStudio 賬號接著,我們需要初始化一個rstudio的賬號
docker exec -it container-id /bin/bash
adduser harryzhu # 設置新用戶名
passwd harryzhu # 設置該用戶的密碼
mkdir /home/harryzhu # 初始化工作空間
chmod -R harryzhu /home/harryzhu # 給工作空間賦權
第三步:安裝 git
然後,我們進入rstudio的伺服器,我們打算引入git版本控制
sudo apt-get install git-core
第四步:解決 ssh 的認證問題
使用 git 的過程可能遇到SSL certificate problem。對於ssh的問題,我們可以選擇建立一個ssh認證的key,也可以在git中設置為忽略。
生成一個key:
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory "/root/.ssh".
連續按下回車,跳過密碼設置
顯示秘鑰信息:
sudo cat /root/.ssh/id_rsa.pub
如果沒有ssh認證的需求,也可以選擇忽略:
git config --global http.sslVerify false
第五步:在 RStudio Server 中配置Git
在最上方的菜單欄中可以選擇Project Options。
接著填寫配置。第六步:克隆 Git 項目到本地Git 功能已經集成在 RStudio-Server 中了,在新建項目時可以選擇新建一個Version Control 的 Git 項目。
大功告成!
參考資料
docker-rstudio 手冊
張丹老師的 RStudio-Server 配置實戰
Rstudio 官方 git 解決方案
劉坤老師的 Git 中文教程
---------------------------------------------------------------------------------------------------------------
概述本文根據 Rstudio Webinars 的教程資源對Rstudio流的R語言教程做一個匯總,可以看到Rstudio對統計報告的Web化和工程化做了大量貢獻。感謝Rstudio的眾多工程師在開源的道路上的貢獻!
謝溢輝:LaTex/Word的統計報告大逃亡之Rmarkdown生態教學視頻地址
在可交互、可復用的統計報告中,謝溢輝將介紹一眾R包,包括 knitr、rmarkdown、htmlwidgets、DT、leaflet以及shiny。
快速標準的論文書寫# $something$ 或者 $$something$$ 可以解決數學公式的問題
# 利用 bib 文件和[@something] 可以解決引用的問題
# 同樣的,你也可以根據一些機構要求引入標準的模板。
參考謝溢輝的Rmarkdown論文
參考謝溢輝的bib文件屏蔽源碼
# ```{r echo=F}屏蔽源代碼
# ```{r, fig.w=5, fig.h=4} 設置配圖大小
# 腳註
代碼段內存共享
利用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皮膚。
在我看來,rmarkdown是一款超越Zeppelin和iPython notebook的產品。
最總要的意義在於,學術工作者和工程師們不僅僅可以擺脫格式對創作的束縛專註於代碼和文檔,更是隨意輸出pdf、slide、html、word、latex等多種格式,形成強有力的跨界衝擊。謝溢輝本人有超過10年以上的LaTex使用經驗,他的rmarkdown和knitr造福了一代學術工作者,顯然LaTex和Word的體系在這種降維攻擊下已經搖搖欲墜。
Hadley Wickham:R與大數據共舞教學視頻地址
R是一門為小數據探索和開發設計的語言,但在生產中R和大數據在一起還能發揮作用嗎? 我們定義數據量大於單機內存的數據為大數據。讓我們對比一下大數據與小數據的生命周期。
一個小數據分析項目的生命周期:
闡明:熟悉數據、模板解決方案
開發:創建有效模型
產品化:自動化與集成
發布:社會化
一個大數據分析項目的生命周期:
切片:抽取部分數據
闡明:熟悉數據、模板解決方案
開發:創建有效模型
擴展:使用到整個數據集
產品化:自動化與集成
發布:社會化
dplyr與數據讀取
教學視頻地址
PackageDBMSsrc_sqlite()SQLitesrc_mysqlMySQLsrc_postgresPostgreSQLlibrary(bigquery) src_bigquery()Google BigQuery顯示SQLshow_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
broom:快速分析
install.packages("broom")
# 查看相關例子
browseVignettes(package="broom")
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的形成過程。
作為分享主義者(sharism),本人所有互聯網發布的圖文均遵從CC版權,轉載請保留作者信息並註明作者 Harry Zhu 的 FinanceR專欄:FinanceR - SegmentFault,如果涉及源代碼請註明GitHub地址:harryprince (HarryZhu) · GitHub。微信號: harryzhustudio
商業使用請聯繫作者。
這個問題好寬泛.Rstudio相比起R,最明顯的就是界面友好性以及更強的操作性。實質性的編程語言沒有任何區別。還是安心的學好R語言,這才是核心內容。過分強調Rstudio一些修飾性的功能,會捨本逐末的!
學會tidyverse工具包, 數據分析整個流程一條龍包辦了.
R for Data Sciencectr+shift+m
懂的自然懂。
沒有人提到Ctrl + Shift + M么
2017.2.18更新:rstudio的preview版自2016年12月之後就沒有更新了,不過用戶在daily build中發現了新出現的terminal窗口,rsutdio功能越來越豐富了。
「Alt」加「-」是一個很重要的技能!
說到底還是為了要跑程序啊。然後可以順便寫一篇PDF。然後做一個網頁,放到github。還可以做個slide。沒事還可以玩玩shiny,寓教於樂。慢慢玩吧。
請用RStudio來完成一片統計學專業的論文,然後你就可以高效運用了
求問,rstudio能否實現類似於雲端賬號功能,就是記錄下次此電腦內包含的r包,你去別的電腦上能直接同步
說說個人使用的一些經驗吧……1.先升級到最新版,我之前一直用老版本,在中文顯示上很蛋疼……更新了之後,感受到了滿滿的愛意2.設置下自己喜歡的背景色和字體顏色,比方我個人酷愛黑色背景,可以有種我是程序員大神的錯覺,提高寫代碼的興奮度3.多實踐,多寫代碼,不懂就help()4.適當地gc(reset=T),小心r ssession佔用大量內存
推薦閱讀:
※考慮從事 SAS 程序員工作,有哪些需要注意的點?
※想學習數據分析,有哪些書籍或資料參考學習?
※暴雪最近的幾款遊戲作為公司的產品來說表現如何?
※為什麼我國農民收入低?
※有什麼醫藥行業專業的數據分析公司?