跳轉到內容

R 程式設計/簡介

來自華夏公益教科書,開放的世界,開放的書籍

什麼是 R ?

[編輯 | 編輯原始碼]

R 是一款用於資料分析的統計軟體。它包含了大量的統計程式,例如 t 檢驗、卡方檢驗、標準線性模型、工具變數估計、區域性多項式迴歸等。它還提供高階繪圖功能。R 和 C 程式語言之間有一些細微的相似之處,但它們以不同的方式執行。

為什麼要使用 R?

[編輯 | 編輯原始碼]
  • R 是 自由軟體。R 是一個官方的 GNU 專案,並根據 自由軟體基金會通用公共許可證 (GPL) 釋出。
  • R 是一個功能強大的資料分析軟體包,包含許多標準和前沿的統計函式。檢視綜合 R 檔案網路 (CRAN) 的 任務檢視,瞭解您可以用 R 做什麼。
  • R 是一種程式語言,因此其功能可以透過使用使用者定義的函式輕鬆擴充套件。在 CRAN 的 貢獻包 中可以找到大量使用者貢獻的函式和包。
  • R 廣泛應用於政治學、統計學、計量經濟學、精算學、社會學、金融學等領域。
  • R 可用於所有主流作業系統(Windows、Mac OS、GNU-Linux)。
  • R 是 面向物件的。幾乎所有東西(例如,複雜的資料結構)都可以儲存為 R 物件。
  • R 是一種矩陣語言。
  • R 語法比 StataSAS 語法更有條理。
  • R 可以安裝在你的 USB 儲存器上[1]

R 的替代品

[edit | edit source]
  • S-PLUS 是與 R 相同的 S 程式語言 的商業版本,而 R 是它的免費版本。
  • Gretl 是用於計量經濟學的自由軟體。它具有圖形使用者介面,非常適合初學者。
  • SPSS 是一種專有軟體,通常用於社會學、心理學和市場營銷。它以易於使用而聞名。
  • GNU PSPP 是 SPSS 的自由軟體替代品。
  • SAS 是一種專有軟體,可用於處理非常大的資料集,例如人口普查資料。
  • Stata 是一種專有軟體,通常用於經濟學和流行病學。
  • Julia 是一種通用程式語言,具有與 MATLAB、R 和 Python 相似的功能(以及 C 的速度),並且可以呼叫所有這些語言的庫。
  • MATLAB 是一種專有軟體,廣泛應用於數學科學和工程領域。
  • Octave 是一款類似於 MATLAB 的自由軟體。其語法相同,MATLAB 程式碼可以在 Octave 中使用。
  • Python 是一種通用程式語言。它包含一些用於資料分析的特定庫,例如 Pandas[2] ·[3]

初學者可以檢視 GNU PSPPGretl。中級使用者可以檢視 Stata。喜歡矩陣程式設計的高階使用者可能會更喜歡 MATLABOctave。非常高階的使用者可能會使用 C 或 Fortran

另請參閱

[edit | edit source]

R 程式設計風格

[edit | edit source]
  • R 是一種面向物件的程式語言。這意味著幾乎所有東西都可以儲存為 R 物件。每個物件都有一個類。此類描述了物件包含的內容以及每個函式對它的作用。例如,plot(x) 會根據 x 是迴歸物件還是向量而產生不同的輸出。
  • 賦值符號是“<-”。或者,可以使用經典的“=”符號。

以下兩個語句是等效的 

 > a <- 2
 > a = 2
  • 引數在圓括號(括號)內傳遞給函式。
  • 可以輕鬆地組合函式。例如,你可以直接鍵入
mean(rnorm(1000)^2)
  • 符號“#”對行尾進行註釋
 # This is a comment
 5 + 7 # This is also a comment
  • 命令通常由換行符分隔。如果要在同一行上放置多個語句,可以使用“;”分隔符。
 a <- 1:10 ; mean(a)
  • 你也可以將一個語句放在多行上。
  • R 區分大小寫:aA 是兩個不同的物件。
  • 傳統上,名稱中不使用下劃線“_”。通常最好使用點“.”。應避免使用下劃線作為物件名稱的第一個字元。
 1:10 |> mean(.)
  • 你也可以使用管道運算子 |>

你可以如何提供幫助

[edit | edit source]

以下是一些編輯人員為保持本書內部一致性而採取的操作。如果你有東西要貢獻,請繼續貢獻。其他編輯隨後可以修改你的編輯,使其符合指南。

R 程式設計書籍的本地風格手冊 WB:LMOS,包括對我們為什麼要這樣做的簡要解釋,是

  • 示例使用“source”標籤 : <syntaxhighlight lang="rsplus"> a <- 1:10 ; mean(a) </syntaxhighlight>。這樣可以使它們對我們的讀者看起來更美觀。
  • 包的名稱用粗體表示 : '''Hmisc'''
  • 函式的名稱用“code”標籤表示:<code>lm()</code>
  • 頁面標題——“R Programming/”之後的部分——使用句首大寫,例如“R Programming/Working with data frames”。我們無法決定是使用句首大寫還是標題大寫,所以我拋硬幣決定了。
  • 每個頁面在頂部都有 <noinclude>{{R Programming/Navigation}}</noinclude>,在底部都有 {{R Programming/Navbar|Mathematics|Probability Distributions}}。這使得線上從一個頁面導航到另一個頁面變得更容易。

另請參閱

[edit | edit source]

參考文獻

[edit | edit source]
  1. Andrew Redd 的行動式 R http://sourceforge.net/projects/rportable/
  2. "Python 資料分析庫". pandas.pydata.org/. 檢索於 2013 年 2 月 14 日.
  3. "Pandas 入門". blog.kaggle.com. 2013 年 1 月 17 日. 檢索於 2013 年 2 月 14 日.
索引 下一步:示例會話
華夏公益教科書