當前位置:編程學習大全網 - 編程語言 - SAS與R優缺點討論 從工業界到學界

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種軟件。通過使用兩種軟件可以使處理及分析數據變得事半功倍,而且使所有的用戶都滿意。

  • 上一篇:部編版二年級《道德與法治》下冊知識點總結
  • 下一篇:清江職高有哪些專業
  • copyright 2024編程學習大全網