在練好基本功也就是前面我們談到的基礎使用、資料型態以及資料結構,甚至我們還製作了資料框架,並透過安裝額外的套件進行簡單資料處理。那麼接下來我們就可以開始拿陌生的資料集合,也就是外部的資料來做練習,那麼R語言是可以將外部資料輸入進來的,進行分析後更可以輸出一個檔案。

一、R語言內建資料集合

R語言除了可以從外部寫入資料外,更是擁有豐富的內建資料,而這些內建資料通常被我們來拿做一些函式的測試,常見拿來當作使用範例的內建資料集合像是iris  ( 鳶尾花 ),或者套件內資料titanic 鐵達尼 等等,現在就教大家如何載入R語言內建資料吧!

#首先查看有哪些資料集合只要使用data()函式,就可以瀏覽內建資料集清單。

data()

#對內建資料集合進行解釋,以問號或者使用help()函式即可

?cars

help(cars)

#找到資料集合名稱,就可以直接打上即可,而R內建資料會以資料框的型態存在

iris

View(iris)

*讀取R語言內建資料的方式非常簡單,大家可以針對有興趣的資料集合來做資料處理的練習或者視覺化的呈現。

二、外部資料

(一)輸入

資料匯入方法有很多種,可以直接輸入程式碼,也有不用輸入程式碼的方式,以下都會一一做介紹:

1. Import Dataset功能

我們可以在Rstudio的右上角環境介面中找到 Import Dataset,裡面選項中,像是Excel、csv檔、Text檔等等,那麼我們就以Excel來示範,點選From Excel,就會進到另一個新視窗,最後只要點選Browse就可以把檔案匯入了。

在選取好檔案後,在中間有個Data Preview欄位,是讓我們可以進行預覽的,而在下方的Import Options可以針對該資料進行微調整,最常用到的就是 First Row as Names 排頭是否要欄位名稱,最後再按下Import即可輸入檔案。

而值得一提的是,在右下角區塊是Code Preview,這邊是把輸入該excel資料的程式碼都打好了,若以後想要再次匯入此資料,複製這段程式碼即可。

2. 手動輸入程式碼匯入

手動輸入程式碼也沒有大家想像中複雜,針對自己想要匯入資料的格式,使用的匯入資料函式會有些微差異而已,其他大同小異!

#寫入Excel,就使用read.excel()函式,特別注意的是,檔案路徑要放在”“中

library(readxl)

data <- read.excel(recipeData <- read_excel(“Downloads/recipeData.xlsx”,  sheet = “recipeData”))

#寫入csv,就使用read.csv()函式

m_data <- read.csv(“/Users/naiyutang/Desktop/manufacture.csv”)

這裡要特別特別注意路徑上斜線的方向,不論 windows 系統或 macOS 都必須使用斜線(/,有些windows在複製路徑的時候會變成反斜線 (\) ,而這樣的斜線在輸入R語言以後是不支持的,因此會顯示error,要將斜線改回正向的斜線才可以執行喔!

*小補充1:複製路徑對於windows系統可能比較沒有什麼問題,但使用MacOS的同學們,你們會複製檔案路徑嗎?是不是不知道從哪裡複製呢?別擔心,我來教大家怎麼樣在macOS複製檔案路徑。

首先一樣右鍵該檔案,接著按住鍵盤上的option,就會看到原本的拷貝某檔案轉變成拷貝某檔案作為路徑名稱。

而在匯入外部檔案或者資料集合時,還能夠透過參數去設定調整資料狀態,例如以下幾種我們比較常使用的參數:

  • file, 檔名
  • delim, 分隔符號
  • col_names, 欄位名稱是否呈現
  • col_types, 每一個欄位的類別,用向量表示
  • skip, 要跳過幾行(自行定義數量)

當然不只以上這些,若想要了解更多參數設定,可以自行打上?read_delim查看官方定義與說明!

#匯入檔案時的參數設定,最常使用到的像是col_names(T/F)、skip等

r_data <- read.csv(“/Users/naiyutang/Desktop/manufacture.csv”, skip = 2)

head(r_data)

s_data <- read.csv(“/Users/naiyutang/Desktop/manufacture.csv”, col_names = F)

head(s_data)

*小補充2:很多外部資料在匯入我們的R語言中時,會產生亂碼的情況,大家遇到這種情況時不用太擔心,不一定是檔案毀損問題,而是檔案編碼問題,只要改掉編碼即可恢復,現在教大家怎麼換編碼。

  • windows :在上方狀態列選擇 File ,在找到 Reopen with Encodin 更改編碼成UTF-8或者BIG5。
  • macOS :以下圖示範 (找到R script列中的小圖示),一樣更改為UTF-8或者BIG5即可。

(二)輸出

當我們在R語言中完成資料處理後,有多種匯出選擇,通常要使大家能使用,會選擇匯出到Excel環境能使用的,那我們會建議是匯出成.txt文字檔或者以.csv逗號分格文字檔,主要使用write.table()和write.csv() 兩種函式。

#以我們整理好的資料集合(dm_data)當作匯出對象,首先匯出成.txt檔。

write.table(dm_data,file=”/Users/yutang/Desktop/完成整理資料.txt”,sep=”,”,row.names = F,col.names = T)

#要指定參數file=儲存之位置以及檔案名稱、sep=”,”以逗號區隔的文字檔、row.names = F,col.names = T是否要行列名稱

就可以在桌面找到剛剛輸出的文字檔囉!

#以我們整理好的資料集合(dm_data)當作匯出對象,再匯出成.csv檔。

write.csv(dm_data,file=”/Users/yutang/Desktop/完成整理資料.csv”)

這樣也就輸出成csv檔囉,是不是非常容易且方便呢?

*小結:以上就是R語言資料的輸入以及輸出,R語言內建資料也相當豐富,未來在探討進階資料處理以及資料清洗時,都有可能會用到內建資料,大家不妨也動手玩玩看。

而外部資料匯入是未來做資料分析時第一大步驟,因此學會匯入資料很重要喔!!!