R語言的基本語法

閱讀時間約 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 語言中,缺失值處理的現代方法通常需要使用專門的套件。這些套件通常提供了更先進的算法和模型,可以更好地處理缺失值。


您的研究遇到了統計分析的困難嗎?您需要專業的統計諮詢和代跑服務嗎?請點我看提供的服務
193會員
106Content count
文章內容以圖像式和步驟化方式,教您如何在各種統計軟體中(例如:SPSS、R和Mplus),執行多種統計方法。此外,我還會分享一些學術和科技新知,幫助您在學術之路上走得更順利。
留言0
查看全部
發表第一個留言支持創作者!
Dr. Rover的研究室 的其他內容
R 語言是一個強大且免費的程式語言,可簡單使用各種套件,進行統計分析和資料清理和視覺化等相關工作。本文將介紹如何安裝R 語言和Rstudio,還有如何執行R語言和建立套件,最後說明如何自訂RStudio的界面顏色和字體 。
R 語言是一個強大且免費的程式語言,可簡單使用各種套件,進行統計分析和資料清理和視覺化等相關工作。本文將介紹如何安裝R 語言和Rstudio,還有如何執行R語言和建立套件,最後說明如何自訂RStudio的界面顏色和字體 。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
R是一種開源的程式語言和環境,主要用於統計計算和數據分析。它擁有強大的統計功能和豐富的圖形繪製工具,使得用戶可以進行數據探索、處理和可視化。R語言的優勢之一是它有一個龐大的使用者社區,提供了大量的套件和資源,使其成為數據科學家和統計學家的首選工具之一。
Thumbnail
初學GGplot2的時候,一直很希望有一種懶人模板,告訴我什麼指令會控制什麼就好,這樣我就複製貼上然後改一改就行了。 雖然距離摸熟GGplot還差得遠,但希望這些留下摸索的紀錄。 如果可以節省到誰的時間那就太好了。
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
Thumbnail
紐約時報曾經於2018年12月製作過「How Does Your State Make Electricity?」專題,探討從2001-2017年美國各州電力系統結構變化。本篇目的旨在仿照紐約時報的做法,也製作一個屬於台灣的電力結構轉變資訊圖表。
Thumbnail
透過機器學習與統計分析角度分析UCI機器學習資料集中的網路顧客購買意圖資料,並透過決策樹方式預測顧客是否會購買產品,提及少部分特徵選取、資料不平衡問題。
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
對資料科學家或數據分析師來說,資料量太大、電腦效能不足一直都是個痛,經常要小心翼翼地觀察記憶體使用率是不是快爆炸。然而,就我的觀察,一樣都是撰寫程式,資料科學工作者對於程式碼乾淨、易懂、高效率的追求似乎比其他工程師來得低。(或是我的樣本數不足,以偏概全)
Thumbnail
資料科學家、數據分析師是近幾年新興,而且熱門的職業,而DataCamp是一個專精於資料科學的程式教學網站。在實務上會用到的各種知識與程式技能,從流程面的網路爬蟲、數據清洗、資料視覺化,到技術面的Python、R語言、SQL,在DataCamp上幾乎都可以找到相關教學。
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
R是一種開源的程式語言和環境,主要用於統計計算和數據分析。它擁有強大的統計功能和豐富的圖形繪製工具,使得用戶可以進行數據探索、處理和可視化。R語言的優勢之一是它有一個龐大的使用者社區,提供了大量的套件和資源,使其成為數據科學家和統計學家的首選工具之一。
Thumbnail
初學GGplot2的時候,一直很希望有一種懶人模板,告訴我什麼指令會控制什麼就好,這樣我就複製貼上然後改一改就行了。 雖然距離摸熟GGplot還差得遠,但希望這些留下摸索的紀錄。 如果可以節省到誰的時間那就太好了。
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
Thumbnail
紐約時報曾經於2018年12月製作過「How Does Your State Make Electricity?」專題,探討從2001-2017年美國各州電力系統結構變化。本篇目的旨在仿照紐約時報的做法,也製作一個屬於台灣的電力結構轉變資訊圖表。
Thumbnail
透過機器學習與統計分析角度分析UCI機器學習資料集中的網路顧客購買意圖資料,並透過決策樹方式預測顧客是否會購買產品,提及少部分特徵選取、資料不平衡問題。
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
對資料科學家或數據分析師來說,資料量太大、電腦效能不足一直都是個痛,經常要小心翼翼地觀察記憶體使用率是不是快爆炸。然而,就我的觀察,一樣都是撰寫程式,資料科學工作者對於程式碼乾淨、易懂、高效率的追求似乎比其他工程師來得低。(或是我的樣本數不足,以偏概全)
Thumbnail
資料科學家、數據分析師是近幾年新興,而且熱門的職業,而DataCamp是一個專精於資料科學的程式教學網站。在實務上會用到的各種知識與程式技能,從流程面的網路爬蟲、數據清洗、資料視覺化,到技術面的Python、R語言、SQL,在DataCamp上幾乎都可以找到相關教學。