R語言的基本語法

2023/11/07閱讀時間約 12 分鐘

R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。

載入資料

在 R 語言中,可以使用以下兩種方式載入資料:

1. 從檔案載入

如果已經在專案當中或是可以使用 read.table()read.csv()read.xlsx() 等函數從檔案中載入資料。

例如,要從 CSV 檔案中載入資料,可以使用以下命令:

data <- read.csv("data.csv")
#[#]後面的字R不會讀取,是給使用者觀看的​
#從 CSV 檔案載入資料data.csv,並將它命名為data

2. 從套件載入

一些套件中包含了預先載入的資料。可以使用 data() 函數查看套件中包含的所有資料。例如,要從 datasets 套件中載入 iris 資料集,可以使用以下命令:

data(iris)

查看資料

在 R 語言中,head() tail() 函數用於查看資料的前幾行或最後幾行。

head()函數用於查看資料的前幾行,默認值為 6 行,可以通過指定 n 參數來指定要查看的行數。可以用來檢查資料是否有錯誤或異常。例如,要查看 iris 資料集的前 3 行,可以使用以下命令:

head(iris, 3)

輸出結果可在 Console 上查看:

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 Setosa
2 4.9 3.0 1.4 0.2 Setosa
3 4.7 3.2 1.3 0.2 Setosa


tail() 函數用於查看資料的最後幾行,默認值為 6 行,可以通過指定 n 參數來指定要查看的行數。例如,要查看 iris 資料集的最後 3 行,可以使用以下命令:

tail(iris, 3)

輸出結果可在 Console 上查看:

   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
50 6.9 3.2 5.1 2.0 Virginica
51 6.7 3.3 5.0 2.1 Virginica
52 6.8 3.2 5.0 2.2 Virginica


基本敘述統計函式

R 語言提供了豐富的函式 /函數(Function),這些函數可以幫助使用者很快的得到統計量或是分析結果並顯示在 Console上。

colMeans() 函數就是其中一個常用的函數,可以用來計算每一個欄位的平均值。函數的語法如下:

colMeans(資料名稱)

例如,要計算 iris 資料集每一個欄位的平均值,輸出為:

Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758333 1.200000


此外,summary() 函數可以用來獲得資料的敘述性統計,包括平均值、中位數、標準差、最小值、最大值、分位數等。

例如,要獲得 iris 資料集的敘述性統計,可以使用summary()得到以下的結果輸出:

     Sepal.Length  Sepal.Width  Petal.Length  Petal.Width  Species
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.400 1st Qu.:0.300 versicolor:50
Median :5.800 Median :3.000 Median :1.500 Median :0.400 virginica:50
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.200
3rd Qu.:6.600 3rd Qu.:3.200 3rd Qu.:4.200 3rd Qu.:1.500
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500

以下是 summary() 函數輸出的各個欄位的含義:

  • Min.:最小值
  • 1st Qu:第一個四分位數,是資料中所有值的 25% 所在的位置。
  • Median:中位數。
  • Mean:平均值。
  • 3rd Qu:第三個四分位數,是資料中所有值的 75% 所在的位置。
  • Max.:最大值

此外,還有許常用的敘述統計函數:

  • mean():計算資料的平均值
  • var():計算資料的變異數
  • sd():計算資料的標準差
  • median():計算資料的中位數
  • min():計算資料的最小值
  • max():計算資料的最大值
  • cor() :可以輸出該資料欄位間的相關性矩陣

這些函數可以用來計算資料的基本統計量,為進一步的分析提供基礎。

安裝套件

R 語言的套件庫中包含了許多功能強大的套件,許多學者針對特定統計分析, 寫成專用的函式, 並將這些集合函式成一組 套件 (package),可以用來進行各種進階統計分析和資料處理。安裝套件可以通過兩種方式進行:

1. 使用 RStudio 的介面

在 RStudio 中,可以通過以下步驟安裝套件:

  1. 在 RStudio 的左下角,單擊 Packages 選項。
  2. 在 Install 選項卡中,輸入套件名稱。
  3. 單擊 Install 按鈕。

2. 使用 R 語言的命令

在 R 語言的命令提示符下,可以使用以下命令安裝套件:

install.packages("套件名稱")

安裝套件完成後,下次就可以用此語法執行套件library("套件名稱")

輸出成.csv或.xlsx檔案

write.table() 函數可以用來將資料輸出到檔案中。write.table() 函數的語法如下:

write.table(資料名稱, 檔案路徑, 分隔符號,附加內容)
#append = FALSE 預設不在檔案末端附加資料​

例如,要將 iris 資料集輸出到 iris.csv 檔案中,可以使用以下命令:

write.table(iris, "iris.csv", sep = ",", append = FALSE)

這將會在當前工作目錄中創建一個名為 iris.csv 的檔案,內容如下:

Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species
5.1,3.5,1.4,0.2,Setosa
4.9,3.0,1.4,0.2,Setosa
4.7,3.2,1.3,0.2,Setosa
...

write.table() 函數可以用來將資料輸出到其他格式的檔案中,例如 .txt、.xlsx 等。以下是一些常用的輸出資料的示例:


# 使用 write.table() 函數輸出資料到檔案
write.table(iris, "iris.csv", sep = ",", append = FALSE)

# 使用 write.table() 函數輸出資料到其他格式的檔案
write.table(iris, "iris.xlsx", sep = ",", append = FALSE)


輸出成.SAV檔案

透過使用haven package,write.sav() 函數用於將資料輸出到 SPSS 的 SAV 檔案格式。SAV 檔案格式是 SPSS 軟體的標準資料格式,可以用來存儲和共享資料。write.sav() 函數的語法如下:

write.sav(data, file, row.names = FALSE, ...)

其中:

  • data 是需要輸出的資料。
  • file 是 SAV 檔案的路徑。
  • row.names 是邏輯值,指示是否將資料框的行名稱輸出到 SAV 檔案。默認值為 FALSE (否)
  • ... 是其他可傳遞給函數的參數,例如 sep 參數用於指定 SAV 檔案的分隔符號。

例如,要將 iris 資料集輸出到 iris.sav 檔案中,可以使用以下命令:

write.sav(iris, "iris.sav", row.names = FALSE)

這將會創建一個名為 iris.sav 的 SAV 檔案,內容如下:

* SPSS Version 23.0

* VARIABLE LABELS

Sepal.Length 花萼長度
Sepal.Width 花萼寬度
Petal.Length 花瓣長度
Petal.Width 花瓣寬度
Species 物種

* FORMATS

Variable Format
Sepal.Length 8.2
Sepal.Width 8.2
Petal.Length 8.2
Petal.Width 8.2
Species F8.2

* MISSING VALUES

Variable Missing Value
Sepal.Length NA
Sepal.Width NA
Petal.Length NA
Petal.Width NA
Species NA

* DATA

Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.100000 3.500000 1.400000 0.200000 Setosa
4.900000 3.000000 1.400000 0.200000 Setosa
4.700000 3.200000 1.300000 0.200000 Setosa
...


缺失值

在 R 語言中,遺失值 (缺失值) 通常用 NA 表示。

可以使用 is.na() 函數來檢測資料是否有遺失值。

Sepal.Length  Sepal.Width  Petal.Length  Petal.Width  Species
FALSE FALSE FALSE FALSE FALSE
#代表都沒有遺漏值

如果資料中有遺失值,可以使用 na.rm = TRUE 參數來忽略遺失值。

#希望平均數計算忽略遺失值
mean(iris$Sepal.Length, na.rm = TRUE)

在進行統計分析之前,通常需要對資料中的遺失值進行處理,以避免對分析結果產生影響。在 R 語言中,缺失值處理的現代方法通常需要使用專門的套件。這些套件通常提供了更先進的算法和模型,可以更好地處理缺失值。


您的研究遇到了統計分析的困難嗎?您需要專業的統計諮詢和代跑服務嗎?請點我看提供的服務
159會員
88內容數
文章內容以圖像式和步驟化方式,教您如何在各種統計軟體中(例如:SPSS、R和Mplus),執行多種統計方法。此外,我還會分享一些學術和科技新知,幫助您在學術之路上走得更順利。
留言0
查看全部
發表第一個留言支持創作者!