R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。
在 R 語言中,可以使用以下兩種方式載入資料:
如果已經在專案當中或是可以使用 read.table()、read.csv()、read.xlsx() 等函數從檔案中載入資料。
例如,要從 CSV 檔案中載入資料,可以使用以下命令:
data <- read.csv("data.csv")
#[#]後面的字R不會讀取,是給使用者觀看的
#從 CSV 檔案載入資料data.csv,並將它命名為data
一些套件中包含了預先載入的資料。可以使用 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),可以用來進行各種進階統計分析和資料處理。安裝套件可以通過兩種方式進行:
在 RStudio 中,可以通過以下步驟安裝套件:
在 R 語言的命令提示符下,可以使用以下命令安裝套件:
install.packages("套件名稱")
安裝套件完成後,下次就可以用此語法執行套件library("套件名稱")
。
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)
透過使用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 語言中,缺失值處理的現代方法通常需要使用專門的套件。這些套件通常提供了更先進的算法和模型,可以更好地處理缺失值。
您的研究遇到了統計分析的困難嗎?您需要專業的統計諮詢和代跑服務嗎?請點我看提供的服務