導航:首頁 > 創造發明 > knitr創造html

knitr創造html

發布時間:2022-06-22 22:10:53

『壹』 如何高效地使用RStudio

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 quantumobject/docker-rstudio
docker run -d -p 8787:8787 quantumobject/docker-rstudio

這樣在你的電腦的8787埠就可以訪問到rstudio的登陸界面了。
第二步:初始化 RStudio 賬號
接著,我們需要初始化一個rstudio的賬號
docker exec -it container-id /bin/bash
adser 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.width=5, fig.height=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()

數據存儲
_to() 根據本地的data frame 在資料庫創建一個表
# air為connection名稱,query5為data frame,"gains"為表名
_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的形成過程。

『貳』 如何用Rstudio+knitr製造Pdf

有點復雜埃。。這么短講不清楚。。。我寫的僅供參考,以R官網的說法為准。 一般先點右上角新建一個project(一般是new directory),類型是package,其他設置看自己喜好啦。然後要填寫DESCRIPTION,比如作者、概述、包的版本、license、依賴哪些..

『叄』 SAS與R的對決 誰好使

SAS與R的對決:誰好使?
翻譯 | JosephYX
來自SAS資源資訊列表
摘要
盡管在工業界還是被 SAS 所統治,但是 R 在學術界卻得到廣泛的應用,因為其免費、開源的屬性使得用戶們可以編寫和分享他們自己的應用。然而,許多正在獲得數據分析相關學位的學生們由於缺乏 SAS 經驗的情況而在找工作的路上困難重重,與此同時,他們要面對從學校熟悉的 R向 SAS 轉型的痛苦。理想情況是,你需要知道所有可能的編程語言,工作的時候使用與工作情況最匹配的那個,當然這個基本上是痴人說夢。我們的目的就是展示這兩種差異巨大的語言各自優點,並且共同發揮他們的優勢,我們同時還要指出那些不使用 SAS 好多年的、現在正在使用 R語言的人們的一些誤解和偏見,因為他們已經很少關注 SAS 的發展和進步了。
前言
我們選取 SAS 和 R 的原因是因為他們是目前在統計領域中最有統治地位的兩個編程語言。現在我們注意到一個不好的現象,就是在學術界重度使用R的用戶認為R在被SAS霸佔的工業界有具有相當優勢的,然而熟練掌握這兩個軟體對於想在數據分析領域取得小有成就的年輕人來說很關鍵。教授誤解加上對某個軟體的偏好往往對學生有著不利的引導,因此需要在這里指出:教授們,別偷懶了,對某種語言的主觀偏好將會影響學生的錢途。
SAS經常有一些更新(有點慢,sxlion注),非SAS程序員由於沒有技術跟進往往並不知情。SAS繪圖模塊就是一個快速發展並成長的例子,然而許多人並不注意到這些升級以至於他們仍然固執的使用 R畫圖。SAS另一個不廣為人知的例子是SAS可以輕松自定義函數,這正是 R 的強項。這個SAS過程步(PROC)有全面的語法檢查、翔實的文檔和技術支持;然而一個新的使用者很可能不知道這些工具可用,或者根本不知道它們的存在。另外,SAS 還擁有卓越的培訓課程,網路及用戶組分享資源,不同相關主題的大量書籍。知道並合理的使用這些技術以及工具 有助於減少使用 SAS的畏懼之心。
相關問題討論
本文就在我們學院碰到的一些共同誤解的地方,在此對比列出兩種語言的優缺點。當然還有更多的爭論在進行中,但是本文匯中我們將選取最為普遍的來進行討論。我們希望能夠消除誤解,並且盡可能地為那些不能及時跟進R或SAS的分析人士提供新的信息。
統計方法的新進展
SAS
優點:SAS 的軟體及演算法都是經過檢驗的,SAS 有技術支持去快速解決用戶的需求。 如果需要的話,SAS 會嘗試在已存在的步驟中嵌入新的方法,例如增加一個選項或者新增一個語句(statement),因此用戶不需要學習另外一個過程步。SAS也 會發布最新通訊來詳細說明軟體的更新。
缺點:更新升級較慢。
R
優點:用戶可以快速實施新方法,或者尋找已經存在的軟體包。很容易學習和理解新方法,因為學生們可以看到代碼中的函數。
缺點:R 文檔的更新都是通過用戶進行的,所以新的方法並沒有被很好調試和檢驗。開發者們散布於各地,而並沒有在一起來進行團隊合作的開發。
在這個問題上,SAS 和 R 的優缺點是互補的。對於 R,有人認為它的代碼是開放的,可以看到 R 是如何工作的,這對於擁有相關背景的人是比較容易理解的。然而對於 SAS,它的過程步是預裝的,文件中對不同的語句(Statement)及選項( Option) 存儲了大量的數學公式。如果用戶真的想看到底層程序,這個也是很容易實現的。對兩種語言的使用著者來說,不管是學生還是其它用戶,只是運行代碼的話對於兩種語言是沒有什麼不同的。你運行SAS,不需要知道它在干什麼,類似的是,你運行R時,也不需要知道它在後台調用的函數。你所做的就是按章操作而已。
畫圖
SAS
優點:SAS畫圖模塊正變得越來越靈活、精良和易於使用。在一些分析過程步(PROCs) 中,ODS Graphics可以自動的生成一些圖形,而不需要額外的代碼。這使得用戶多了一個選擇,即可以使用默認的圖表生成圖表,也可以自己來創造個性化的圖表。
缺點:圖形背後的模板語言(TL)是龐大及不易使用的,特別是對於新手來說。新的高級功能如互動式繪圖功能( interactive graphs),對於新手來說也是難以掌握的。
R
優點:可以簡單的生成漂亮的圖表,還可以使用循環語句來生成動畫。
缺點:在 R 中圖表功能與統計分析無關,繪圖和分析是相互獨立的。用戶必須自己來決定什麼樣的圖形是合適的,使用效果的好壞取決於用戶們的統計背景和喜好。盡管改變圖形去達到特別的維度或角度並不是一個簡單事兒。
SAS9.2 之前版本的圖表功能不足是 R 更吸引人的一個主要原因之一。R的一個最好的特性之一就是其圖表功能的高質量性和易用性。但是,當前 SAS/GRAPH 搭配 ODS Graphics 及 SG 過程在軟體中增加了制圖的能力。聯合使用 ODS graphics 和 PROCS 可以使用戶簡單地生成與分析相關的展示圖表。 特定的繪圖過程步如PROCSGPLOT,SGPANEL和SGSCATTER等越來越多,當然需要的一定代碼來實現。另外,SAS 中還有一些其他不錯的繪圖選擇,如 SGDESOGNER 和 SAS Enterprise Guide。
函數及可重復使用的代碼
SAS
優點:SAS有可在 DATA 和 PROC 步使用的大量函數和自定義函數。另外強大無所不能的、也可以被DATA步和PROC步使用的宏語言。宏變數可定義為局部或者全局類型。
缺點:編寫自定義函數和詳細的宏代碼需要深厚的編程知識來確保正確性。
R
優點:在 R 中編寫函數很簡單,用戶也可以通過上傳自己的函數到 R-CRAN 上與其 它用戶分享。
缺點:編寫自定義函數需要深厚的編程知識來確保正確性。變數是嚴格的局部變數。在這一點上兩種軟體擁有類似的利弊。SAS 的早期用戶運行自己的定製函數主要取決於宏程序的編寫,這也是 R 用戶認為其低效及笨重的原因。然而,SAS 9 版本的 PROC FCMP允許用戶編寫個性化的函數,SAS 9.2 版本又允許用戶在 DATA 及 PROC 步中調用這些函數。 這對於簡單的統計函數是很有用的,對於更加復雜的統計函數也可以通過 IML 語言來實現。
SAS 及 R 兩種語言都面臨著怎樣有效地、正確的使用函數,這就需要用戶在函數編寫的過 程中擁有深厚的編程背景。從好的角度來說,一個程序員需要知道他們編寫的是什麼;危險的是,其它人可以下載一個 SAS 宏或者 P 程序包來使用,盡管他們不知道其內在工作原理, 甚至不知道其正確性。所以,有了對宏及函數適當的了解,再來分享它們並應用於具體的需求是很方便的。
免費軟體
SAS
優點:SAS 有OnDemand 版本的軟體,免費提供給學位頒發機構。
缺點:真正的 SAS 和 JMP 並不是免費的。OnDemand 版本對使用何種操作系統有一 些限制,而且據反映運行速度很慢。
R
優點:R 是完全免費。
缺點:開源軟體對於大公司來講都會有安全方面的擔憂。
SAS公 司 為 教 育 機 構 提 供 的 免費 替 代 品 可 以 保 證 教 授 們 在 課 堂 上 的 使 用 。 對 於 OnDemand 的安裝過程和速度需要注意。總之,SAS 和 JMP 不是免費的,公司需要使用許 可來使用該軟體。R 可以免費的安裝,但許多參與論戰的博主們認為如果那些正在使用 SAS 的公司去使用 R,將會花費遠遠超過 SAS 授權費用的資源和財力,例如重寫代碼、構建新的團隊、招聘新的專業人員等等。而且對於那些分析結果需要經得起嚴格檢驗要求的公司, 可能 SAS 更加適合。還沒有現存分析框架的小公司可以來探討是選擇歷史悠久、資源豐富的付費軟體(SAS),還是要選擇雖然免費、但是還需要其它先期投資(如員工的知識背景, 編寫及調試代碼)的軟體(R)。最終,從時間和金錢的角度來衡量,SAS 和 R 的花費可能 是基本接近的。
用戶支持
SAS
優點:SAS 有豐富的網上參考資料,專業的技術支持,專業的培訓課程,許多優秀 的出版書籍,一個緊密的用戶組及網路社區。SAS 的問題可以直接反映給技術支 持部門,他們會與用戶一起來解決。
缺點:真的沒想到。
R
優點:R 有很好的示例手冊,網上參考材料,R 郵件列表和 R 聚會。
缺點:用戶們取決於其它用戶對於軟體的看法及建議。因為 R 的開發者散布於全球 各地,所以全球的用戶是缺乏聯系的。程序包(Package)並不是由 R 軟體的開發 核心團隊來編寫的,所以導致了程序的不完善甚至有時候會對結果的正確性有所懷 疑。另外,很難去直接尋找一個針對具體問題的人員或者團隊。
SAS 所提供的卓越的支持是他們以客戶為中心設計產品的亮點。SAS 支持的優點對初 學者是理想的幫助,其大量的細節也使資深用戶受益匪淺。R 較為混亂的參考資料和匱乏的技術支持在需要尋找幫助時困難重重。這違背了 R 的開發設計者的初衷。
數據處理
SAS
優點:SAS 可以處理任意類型和格式的數據。DATA 步的設計純粹就是為了數據的管 理,所以 SAS 擅長處理數據。利用豐富的選項,SAS 可以將大數據處理的很好,拼表以及 PROC SQL 也可以減少運行時間。
缺點:在 DATA 步驟中 SAS 中的DATA步有非明示的循環演算法,因此使用者的編程思維需要改變以符合SAS的運行邏輯。
R
優點:R 在最初就被認為是更加適合大數據的。它對於矩陣的操作和排序的設計是非常高效的。R 也可以很好的進行各種基於分析的數據模擬。
缺點:R 的設計更加關注統計計算以及畫圖功能,所以數據的管理是比較耗時的,而且不如在 SAS 中那麼明晰。其中一個主要的原因就是:對於各種不同類型的數據,在 R 中進行很好的數據處理是比較難以掌握的。
數據處理的重要性經常在統計編程中被忽視了,但是它確實是非常關鍵的,因為實際的數據非常糟糕,不能直接應用於分析。純粹地使用 R 的學生們對於得到的數據往往有不切實際的期望,而學習 SAS 是一個有效的方法去解決怎樣整理原始的數據。SAS可以對大而繁雜的數據集進行管理和分析,而 R更著重於進行分析。
當處理復雜數據時,R 的面向對象的數據結構會遇到很多問題,並且R還缺乏一個內在的循環過程。在SAS中,應用標准化工具經常會進行如下操作:合並含有大量缺失數據的復雜數據集,再生成及修改其中的變數。而在R中,進行復雜的數據處理操作是沒有標准化的,而且經常會導致更加復雜的過程。
SAS與R軟體運行時間的快慢對比取決於任務。如SAS可以通過設置 MEMLIB,從而像R一樣使用內存(而非硬碟)來提升運行速度。但在R中,沒有這樣的硬體驅動,只能使用內存來執行。
安裝
SAS
優點:SAS所有的分析功能及授權都被整體打包在一起安裝。升級授權證書是非常容易。
缺點:首次安裝或升級到一個新的版本是很耗時且有點麻煩的。但是這比在課堂上向學生們講述如何使用這個軟體簡單1000倍。現在越來越多的學生們在課堂上使用Macs系統的筆記本,但是SAS沒有Mac版,意味著這部分學生無法使用 SAS。
R
優點:R 和其最常用的用戶界面 RStudio 在 Window、Mac 和 Unix 環境下都很容易安 裝和打開,且安裝速度都很快。
缺點:運行必須知道滿足需求的程序包,然後搜索、安裝、了解具體功能。截止原文發表時,共有 4379 個可用程序包,這一數量還在每天增加。在提供了更多選擇的 同時,也增加了搜尋的時間和難度。
SAS 的獲得對用戶來說比較困難,首次安裝也是比較麻煩的。但是一旦安裝完成了,有關軟體本身的問題就很少了,對於特別的分析,也不需要額外的程序包或者步驟了。R 中 相反,安裝非常簡單,但對於額外分析,需要另外安裝程序包,浪費了安裝軟體所節省的時間。
報表
SAS
優點:SAS 通過很多有用的過程步來生成詳細漂亮的報表。
缺點:能提供更詳盡報表的過程如 TABULATE、REPORT 等,在能正確而有效的使用前,將為有一個艱難的學習曲線等待你跨越。
R
優點:報表方面,R擁有諸多利器。Sweave包可以創造包含文字、表格和圖形的 PDF 文件,其中圖形可以LaTeX 和 R 命令來裝扮。另一個新的程序包 Knitr 可以快速生成格式限制較少的網頁內容。
缺點:R 沒有一個模式化的方式來生成報表,所以需要在編程上花一些功夫。報表的生成對於 R 來說是一個比較新的方向,所以它不如 SAS 來的簡單和快速。在 R 中,Sweave 和 Knitr 是報表這方面的領先的程序包,但是學習起來也比較困難。
重度報表使用用戶應該了解這些以上不同,盡管學習 SAS 的報表功能需要花費一些時間,但是一旦掌握了就很有價值並有很高的靈活性。而從最基礎學習 R 的報表功能也許不需要像 SAS 那樣花那麼多時間。
結論
我們可以看到解決 R 與 SAS 的辯論是三合一的。第一,就像在任何一個統計編程社區 一樣,我們知道這個PK是沒有一個最終贏家。兩種軟體各有優缺點。他們有共存的必要,而學術上的教學中,他們也有共存的必要。如果學生們能夠明確他們的需求並合理的應 用,那樣會獲得更好的效果。如果只給學生教授一種軟體是有局限性的,這樣會使他們難以發揮學習另外一種軟體的潛力。第二,用戶們需要保持他們的工具箱與時俱進。SAS 和 R 都有一些很不錯的 學習網站去介紹最新 的技術上的進步。 SAS 技 術支 持 網 站 http://support.sas.com 有許多最新的動態,如 Focus Areas、E-newsletters、RSS 種子和博客。R 博客網站 http://www.r-bloggers.com 包含了許多用戶貢獻的新聞和練習。第三,最理想的是學習兩種軟體並將其融合於分析中。這里有許多方法可以嘗試,例如用 SAS 的 IML 和 SAS 的 IML/Studio(IML 是 SAS 的一個載入項)功能,或者通過使用 SAS X Statement 執行外部命 令,使 R 代碼在 SAS 中轉化成 SAS 命令來運行。對於 R 的用戶們,通過轉化 R 到 SAS 的 用戶界面,可以同時使用 2 種軟體。通過使用兩種軟體可以使處理及分析數據變得事半功倍, 而且使所有的用戶都滿意。

『肆』 SAS與R優缺點討論 從工業界到學界

SAS與R優缺點討論:從工業界到學界
盡管在工業界還是被 SAS 所統治,但是R在學術界卻得到廣泛的應用,因為其免費、開源的屬性使得用戶們可以編寫和分享他們自己的應用。我們的目的就是展示這兩種差異巨大的語言各自優點,並且共同發揮他們的優勢,我們同時還要指出那些不使用SAS 好多年的、現在正在使用 R語言的人們的一些誤解和偏見,因為他們已經很少關注 SAS 的發展和進步了。
前言
我們選取 SAS 和 R的原因是因為他們是目前在統計領域中最有統治地位的兩個編程語言。現在我們注意到一個不好的現象,就是在學術界重度使用R的用戶認為R在被SAS霸佔的工業界有具有相當優勢的,然而熟練掌握這兩個軟體對於想在數據分析領域取得小有成就的年輕人來說很關鍵。
SAS經常有一些更新,非SAS程序員由於沒有技術跟進往往並不知情。SAS繪圖模塊就是一個快速發展並成長的例子,然而許多人並不注意到這些升級以至於他們仍然固執的使用R畫圖。SAS另一個不廣為人知的例子是SAS可以輕松自定義函數,這正是 R的強項。這個SAS過程步(PROC)有全面的語法檢查、翔實的文檔和技術支持;然而一個新的使用者很可能不知道這些工具可用,或者根本不知道它們的存在。另外,SAS還擁有卓越的培訓課程,網路及用戶組分享資源,不同相關主題的大量書籍。知道並合理的使用這些技術以及工具有助於減少使用SAS的畏懼之心。
統計方法的新進展
SAS:
優點:SAS 的軟體及演算法都是經過檢驗的,SAS 有技術支持去快速解決用戶的需求。如果需要的話,SAS會嘗試在已存在的步驟中嵌入新的方法,例如增加一個選項或者新增一個語句(statement),因此用戶不需要學習另外一個過程步。SAS也會發布最新通訊來詳細說明軟體的更新。
缺點:更新升級較慢。
R:
優點:用戶可以快速實施新方法,或者尋找已經存在的軟體包。很容易學習和理解新方法,因為學生們可以看到代碼中的函數。
缺點:R文檔的更新都是通過用戶進行的,所以新的方法並沒有被很好調試和檢驗。開發者們散布於各地,而並沒有在一起來進行團隊合作的開發。
在這個問題上,SAS 和 R 的優缺點是互補的。對於 R,有人認為它的代碼是開放的,可以看到 R是如何工作的,這對於擁有相關背景的人是比較容易理解的。然而對於SAS,它的過程步是預裝的,文件中對不同的語句(Statement)及選項( Option)存儲了大量的數學公式。如果用戶真的想看到底層程序,這個也是很容易實現的。對兩種語言的使用著者來說,不管是學生還是其它用戶,只是運行代碼的話對於兩種語言是沒有什麼不同的。你運行SAS,不需要知道它在干什麼,類似的是,你運行R時,也不需要知道它在後台調用的函數。你所做的就是按章操作而已。
畫圖
SAS:
優點:SAS畫圖模塊正變得越來越靈活、精良和易於使用。在一些分析過程步(PROCs) 中,ODSGraphics可以自動的生成一些圖形,而不需要額外的代碼。這使得用戶多了一個選擇,即可以使用默認的圖表生成圖表,也可以自己來創造個性化的圖表。
缺點:圖形背後的模板語言(TL)是龐大及不易使用的,特別是對於新手來說。新的高級功能如互動式繪圖功能( interactivegraphs),對於新手來說也是難以掌握的。
R:
優點:可以簡單的生成漂亮的圖表,還可以使用循環語句來生成動畫。
缺點:在 R中圖表功能與統計分析無關,繪圖和分析是相互獨立的。用戶必須自己來決定什麼樣的圖形是合適的,使用效果的好壞取決於用戶們的統計背景和喜好。盡管改變圖形去達到特別的維度或角度並不是一個簡單事兒。
SAS9.2 之前版本的圖表功能不足是 R更吸引人的一個主要原因之一。R的一個最好的特性之一就是其圖表功能的高質量性和易用性。但是,當前 SAS/GRAPH 搭配 ODSGraphics 及 SG 過程在軟體中增加了制圖的能力。聯合使用 ODS graphics 和 PROCS可以使用戶簡單地生成與分析相關的展示圖表。特定的繪圖過程步如PROCSGPLOT,SGPANEL和SGSCATTER等越來越多,當然需要的一定代碼來實現。另外,SAS 中還有一些其他不錯的繪圖選擇,如SGDESOGNER 和 SAS Enterprise Guide。
函數及可重復使用的代碼
SAS:
優點:SAS有可在 DATA 和 PROC步使用的大量函數和自定義函數。另外強大無所不能的、也可以被DATA步和PROC步使用的宏語言。宏變數可定義為局部或者全局類型。
缺點:編寫自定義函數和詳細的宏代碼需要深厚的編程知識來確保正確性。
R:
優點:在 R 中編寫函數很簡單,用戶也可以通過上傳自己的函數到 R-CRAN 上與其它用戶分享。
缺點:編寫自定義函數需要深厚的編程知識來確保正確性。變數是嚴格的局部變數。在這一點上兩種軟體擁有類似的利弊。SAS的早期用戶運行自己的定製函數主要取決於宏程序的編寫,這也是 R 用戶認為其低效及笨重的原因。然而,SAS 9 版本的 PROCFCMP允許用戶編寫個性化的函數,SAS 9.2 版本又允許用戶在 DATA 及 PROC步中調用這些函數。這對於簡單的統計函數是很有用的,對於更加復雜的統計函數也可以通過 IML 語言來實現。
SAS 及 R兩種語言都面臨著怎樣有效地、正確的使用函數,這就需要用戶在函數編寫的過程中擁有深厚的編程背景。從好的角度來說,一個程序員需要知道他們編寫的是什麼;危險的是,其它人可以下載一個SAS 宏或者 P程序包來使用,盡管他們不知道其內在工作原理,甚至不知道其正確性。所以,有了對宏及函數適當的了解,再來分享它們並應用於具體的需求是很方便的。
用戶支持
SAS:
優點:SAS 有豐富的網上參考資料,專業的技術支持,專業的培訓課程,許多優秀的出版書籍,一個緊密的用戶組及網路社區。SAS的問題可以直接反映給技術支持部門,他們會與用戶一起來解決。
R:
優點:R 有很好的示例手冊,網上參考材料,R 郵件列表和 R 聚會。
缺點:用戶們取決於其它用戶對於軟體的看法及建議。因為 R的開發者散布於全球各地,所以全球的用戶是缺乏聯系的。程序包(Package)並不是由 R軟體的開發核心團隊來編寫的,所以導致了程序的不完善甚至有時候會對結果的正確性有所懷疑。另外,很難去直接尋找一個針對具體問題的人員或者團隊。
數據處理
SAS:
優點:SAS 可以處理任意類型和格式的數據。DATA 步的設計純粹就是為了數據的管理,所以 SAS擅長處理數據。利用豐富的選項,SAS 可以將大數據處理的很好,拼表以及 PROC SQL 也可以減少運行時間。
缺點:在 DATA 步驟中 SAS中的DATA步有非明示的循環演算法,因此使用者的編程思維需要改變以符合SAS的運行邏輯。
R:
優點:R 在最初就被認為是更加適合大數據的。它對於矩陣的操作和排序的設計是非常高效的。R也可以很好的進行各種基於分析的數據模擬。
缺點:R 的設計更加關注統計計算以及畫圖功能,所以數據的管理是比較耗時的,而且不如在 SAS中那麼明晰。其中一個主要的原因就是:對於各種不同類型的數據,在 R 中進行很好的數據處理是比較難以掌握的。
數據處理的重要性經常在統計編程中被忽視了,但是它確實是非常關鍵的,因為實際的數據非常糟糕,不能直接應用於分析。純粹地使用 R的學生們對於得到的數據往往有不切實際的期望,而學習 SAS是一個有效的方法去解決怎樣整理原始的數據。SAS可以對大而繁雜的數據集進行管理和分析,而 R更著重於進行分析。
當處理復雜數據時,R的面向對象的數據結構會遇到很多問題,並且R還缺乏一個內在的循環過程。在SAS中,應用標准化工具經常會進行如下操作:合並含有大量缺失數據的復雜數據集,再生成及修改其中的變數。而在R中,進行復雜的數據處理操作是沒有標准化的,而且經常會導致更加復雜的過程。
SAS與R軟體運行時間的快慢對比取決於任務。如SAS可以通過設置MEMLIB,從而像R一樣使用內存(而非硬碟)來提升運行速度。但在R中,沒有這樣的硬體驅動,只能使用內存來執行。
報表
SAS:
優點:SAS 通過很多有用的過程步來生成詳細漂亮的報表。
缺點:能提供更詳盡報表的過程如 TABULATE、REPORT等,在能正確而有效的使用前,將為有一個艱難的學習曲線等待你跨越。
R:
優點:報表方面,R擁有諸多利器。Sweave包可以創造包含文字、表格和圖形的 PDF 文件,其中圖形可以LaTeX 和 R命令來裝扮。另一個新的程序包 Knitr 可以快速生成格式限制較少的網頁內容。
缺點:R 沒有一個模式化的方式來生成報表,所以需要在編程上花一些功夫。報表的生成對於 R 來說是一個比較新的方向,所以它不如 SAS來的簡單和快速。在 R 中,Sweave 和 Knitr 是報表這方面的領先的程序包,但是學習起來也比較困難。
重度報表使用用戶應該了解這些以上不同,盡管學習 SAS的報表功能需要花費一些時間,但是一旦掌握了就很有價值並有很高的靈活性。而從最基礎學習 R 的報表功能也許不需要像 SAS那樣花那麼多時間。
結論
我們可以看到解決 R 與 SAS的辯論是三合一的。第一,就像在任何一個統計編程社區一樣,我們知道這個PK是沒有一個最終贏家。兩種軟體各有優缺點。他們有共存的必要,而學術上的教學中,他們也有共存的必要。如果學生們能夠明確他們的需求並合理的應用,那樣會獲得更好的效果。如果只給學生教授一種軟體是有局限性的,這樣會使他們難以發揮學習另外一種軟體的潛力。第二,用戶們需要保持他們的工具箱與時俱進。SAS和 R 都有一些很不錯的學習網站去介紹最新的技術上的進步。第三,最理想的是學習兩種軟體並將其融合於分析中。對於 R 的用戶們,通過轉化R 到SAS 的用戶界面,可以同時使用 2種軟體。通過使用兩種軟體可以使處理及分析數據變得事半功倍,而且使所有的用戶都滿意。

閱讀全文

與knitr創造html相關的資料

熱點內容
2015年基本公共衛生服務項目試卷 瀏覽:985
創造營陳卓璇 瀏覽:905
安徽職稱計算機證書查詢 瀏覽:680
衛生院公共衛生服務會議記錄 瀏覽:104
泉州文博知識產權 瀏覽:348
公共衛生服務培訓會議小結 瀏覽:159
馬鞍山攬山別院價格 瀏覽:56
施工索賠有效期 瀏覽:153
矛盾糾紛交辦單 瀏覽:447
2010年公需課知識產權法基礎與實務答案 瀏覽:391
侵權責任法第5556條 瀏覽:369
創造者對吉阿赫利直播 瀏覽:786
中小企業公共服務平台網路 瀏覽:846
深圳市潤之行商標製作有限公司 瀏覽:62
江莉馬鞍山 瀏覽:417
馬鞍山大事件 瀏覽:759
機動車銷售統一發票抵扣期限 瀏覽:451
馬鞍山防汛抗旱指揮部通告 瀏覽:811
公司間商標授權書模板 瀏覽:115
上海市醫患糾紛預防與調解辦法 瀏覽:970