R LanguageR語言入門

備註

在Stack Overflow上編輯R Docs

創建文檔時,請參閱文檔指南以了解一般規則。

R的一些特徵,來自其他語言的移民可能會發現異常

  • 與其他語言不同,R中的變量不需要類型聲明。
  • 如果需要,可以在不同的時間實例為同一變量分配不同的數據類型。
  • 原子向量和列表的索引從1開始,而不是0。
  • R arrays (以及矩陣的特殊情況)具有一個dim屬性,可以將它們與R的沒有屬性的“原子向量”區分開來。
  • R中的列表允許您以有序的方式收集一個名稱下的各種對象(即列表的名稱)。這些對象可以是矩陣向量數據幀甚至是其他列表等。甚至不要求這些對像以任何方式彼此相關。
  • 回收
  • 缺少價值觀

獲得幫助

你可以使用功能help()? 訪問文檔並在R中搜索幫助。對於更一般的搜索,您可以使用help.search()??

#For help on the help function of R
help()

#For help on the paste function
help(paste)    #OR
help("paste")  #OR
?paste         #OR
?"paste"
 

有關其他信息,請訪問https://www.r-project.org/help.html

你好,世界!

"Hello World!"
 

另外,請查看有關如何,何時,是否以及為何打印字符串的詳細討論

安裝R.

你可能想安裝RStudio您已經安裝後R. RStudio是對R一個開發環境,簡化了許多編程任務。

僅限Windows:

Visual Studio (從2015 Update 3開始)現在具有R的開發環境,稱為R Tools ,包括實時解釋器,IntelliSense和調試模塊。如果選擇此方法,則不必按照以下部分中的指定安裝R.

對於Windows

  1. 轉到CRAN網站,點擊下載R for Windows,然後下載最新版本的R.
  2. 右鍵單擊安裝程序文件,然後以管理員身份運行。
  3. 選擇安裝的操作語言。
  4. 按照安裝說明進行操作。

對於OSX / macOS

備選方案1

(0.確保安裝了XQuartz

  1. 轉到CRAN網站並下載最新版本的R.
  2. 打開磁盤映像並運行安裝程序。
  3. 按照安裝說明進行操作。

這將安裝R和R-MacGUI。它將GUI作為R.app放在/ Applications / Folder中,可以雙擊它或拖動到Doc。發布新版本時,(重新)安裝過程將覆蓋R.app,但將維護R的主要版本。實際的R代碼將位於/Library/Frameworks/R.Framework/Versions/目錄中。在RStudio中使用R也是可能的,並且將使用具有不同GUI的相同R代碼。

備選方案2

  1. 按照https://brew.sh/上的說明安裝homebrew(缺少的macOS包管理器)
  2. brew install R

那些選擇第二種方法的人應該意識到Mac分支的維護者會反對它,並且不會回答有關R-SIG-Mac郵件列表上的困難的問題。

對於Debian,Ubuntu和衍生品

您可以通過apt-get 與您的發行版對應的R版本。但是,此版本通常遠遠落後於CRAN上最新版本。您可以將CRAN添加到已識別的“來源”列表中。

sudo apt-get install r-base
 

您可以通過將CRAN添加到源列表中直接從CRAN獲取更新版本。按照方向從CRAN的更多細節。特別注意還需要執行它,以便您可以使用install.packages() 。 Linux軟件包通常作為源文件分發,需要編譯:

sudo apt-get install r-base-dev
 

對於Red Hat和Fedora

sudo dnf install R
 

對於Archlinux

R可直接在Extra package repo中使用。

sudo pacman -S r

有關在Archlinux下使用R的更多信息,請訪問ArchWiki R頁面

交互模式和R腳本

交互模式

使用R的最基本方式是交互模式。您鍵入命令並立即從R獲取結果

使用R作為計算器

通過在操作系統的命令提示符下鍵入R 或在Windows上執行RGuiRGui 您可以在下面看到Linux上的交互式R會話的屏幕截圖:

執行R的linux終端的屏幕截圖

這是Windows上的RGui,是Windows下R的最基本的工作環境: Windows上的RGui終端的屏幕截圖

> 符號後,可以輸入表達式。一旦輸入表達式,結果將由R顯示。在上面的屏幕截圖中,R用作計算器:類型

1+1
 

立即看到結果, 2 。前導[1] 表示R返回一個向量。在這種情況下,向量只包含一個數字(2)。

第一個情節

R可用於生成圖。以下示例使用數據集PlantGrowth ,它與R一起作為示例數據集

在R提示符中輸入以下所有行,不以## 開頭。以## 開頭的行用於記錄R將返回的結果。

data(PlantGrowth)
str(PlantGrowth)
## 'data.frame':    30 obs. of  2 variables:
## $ weight: num  4.17 5.58 5.18 6.11 4.5 4.61 5.17 4.53 5.33 5.14 ...
## $ group : Factor w/ 3 levels "ctrl","trt1",..: 1 1 1 1 1 1 1 1 1 1 ...
anova(lm(weight ~ group, data = PlantGrowth))
## Analysis of Variance Table
## 
## Response: weight
##           Df  Sum Sq Mean Sq F value  Pr(>F)  
## group      2  3.7663  1.8832  4.8461 0.01591 *
## Residuals 27 10.4921  0.3886                  
## ---
## Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
boxplot(weight ~ group, data = PlantGrowth, ylab = "Dry weight")
 

創建以下圖:

Boxplot,從PlantGrowth示例數據集創建

data(PlantGrowth) 加載示例數據集PlantGrowth ,其是受到兩種不同處理條件或根本不處理的植物幹質量的記錄(對照組)。數據集以PlantGrowth 的名稱PlantGrowth 。這樣的名稱也稱為變量

要加載您自己的數據,以下兩個文檔頁面可能會有所幫助:

str(PlantGrowth) 顯示有​​關已加載的數據集的信息。輸出表明PlantGrowth 是一個data.frame ,它是表的R名稱。 data.frame 包含兩列和30行。在這種情況下,每行對應一個工廠。兩列的詳細信息顯示在以$ 開頭的行中:第一列稱為weight 並包含數字( num ,相應工廠的干重)。第二列group 包含植物所經受的處理。這是分類數據,在R中稱為factor閱讀有關數據幀的更多信息

為了比較三個不同組的干質量,使用anova(lm( ... )) 進行單向ANOVA。 weight ~ group 意味著“比較列weight 的值,按列group 的值進行group ”。這在R中稱為公式 .data data = ... 指定可以找到數據的表的名稱。

結果顯示,在三個組中的一些組之間存在顯著差異(列Pr(>F) ), p = 0.01591 )。必須執行像Tukey測試這樣的事後測試,以確定哪些組的平均值存在顯著差異。

boxplot(...) 創建數據的箱形圖。要繪製的值來自哪裡。 weight ~ group 意味著:“繪製列權重值與列group 值的關係 ylab = ... 指定y軸的標籤。更多信息: 基礎繪圖

鍵入q()Ctrl - D以退出R會話。

R腳本

要記錄您的研究,最好將用於計算的命令保存在文件中。為此,您可以創建R腳本 。 R腳本是一個簡單的文本文件,包含R命令。

創建一個名為plants.R 的文本文件,並使用以下文本填充它,其中一些命令在上面的代碼塊中是熟悉的:

data(PlantGrowth)

anova(lm(weight ~ group, data = PlantGrowth))

png("plant_boxplot.png", width = 400, height = 300)
boxplot(weight ~ group, data = PlantGrowth, ylab = "Dry weight")
dev.off()    
 

通過在終端中輸入腳本來執行腳本(操作系統的終端, 而不是上一節中的交互式R會話!)

R --no-save <plant.R >plant_result.txt
 

文件plant_result.txt 包含計算結果,就像您已將它們鍵入到交互式R提示中一樣。因此,您的計算記錄在案。

新命令pngdev.off 用於將dev.off 保存到磁盤。這兩個命令必須包含繪圖命令,如上例所示。 png("FILENAME", width = ..., height = ...) 打開一個新的PNG文件,其中包含指定的文件名,寬度和高度(以像素為單位)。 dev.off() 將完成繪圖並將繪圖保存到磁盤。在調用dev.off() 之前不保存輸出。