iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
AI & Data

30天成為資料分析師-手把手R語言與資料分析教學系列 第 4

[Day 4] R語言資料匯入/匯出與存檔

  • 分享至 

  • xImage
  •  

安裝好package後,可以嘗試在R Script中呼叫該package,來確認是否安裝成功,程式碼如下:

library(xlsx)

在講解檔案的匯入之前,需要先知道我們要匯入檔案的路徑,也就是它在哪個資料夾中,這裡介紹兩種常用的匯入資料方式:

  1. 絕對的檔案位置
    找到絕對路徑的步驟如下:
    找到要匯入的檔案 → 點選右鍵 → 點選內容 → 找到「位置」
    可使用下方指令讀檔:
# 檔案位置+檔名
read.csv("D:\ithome鐵人\day4.csv")
  1. 相對的檔案位置
# 先將路徑定義到該檔案所在的資料夾
setwd("D:/ithome鐵人/")

# 只需要寫檔名
read.csv("day4.csv")

而在資料分析中,常用的格式有csv, xlsx, txt,以下就用這三種型態的檔案來舉例如何匯入資料。

  • csv
# 當csv檔案中沒有欄位名稱時,需加入參數header=FALSE,否則第一列資料會被當成欄位名稱
read.csv("day4.csv", header=FALSE)

# 指定檔案的編碼
read.csv("day4.csv", encoding='utf-8')
  • xlsx
library(xlsx)
# 指定要讀的sheet
read.xlsx("day4.xlsx", sheet = 1)
  • txt
# sep代表資料的分隔符號
read.table("day4.txt", header = TRUE, sep = "\t")
  • 快速讀資料(Tips: 檔案大的時候好用!)
fread("day4.csv", header = TRUE, sep = "\t")

學會了匯入資料,接著來介紹如何匯出csv, xlsx, txt格式

# 需要先將前面讀進來的檔案存成一個變數data,後面才能將它輸出
data = read.csv("day4.csv", header=FALSE)

# row.names= FALSE表示不匯出列名稱
write.csv(data, file = "day4.csv", row.names = FALSE)
write.xlsx(data, "day4.xlsx", sheetName = "sheet1", row.names=FALSE)

# 也可以使用write.table(),append=TRUE表示將這組資料加到舊有的csv檔中
write.table(data, file = "day4.csv", append=TRUE)
write.table(data, file = "day4.txt", sep = "\t", row.names = FALSE)

最後是使用Rdata格式來匯入/匯出資料,
優點是可以保存資料的型態及屬性,並且可以將多組數據存在同個檔案中

# 匯出
save(data, file = "day4.Rdata")

# 匯入
load("day4.Rdata")

經過上面的講解,相信大家已經能夠自己匯入/匯出這些常見的檔案,下一篇我們將展開資料型態的介紹!


上一篇
[Day 3] RStudio Package安裝
下一篇
[Day 5] R語言資料型態(1)
系列文
30天成為資料分析師-手把手R語言與資料分析教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
obarisk
iT邦研究生 1 級 ‧ 2023-09-06 08:32:11

readxl 應該比 xlsx 好裝

0
Hunt
iT邦新手 5 級 ‧ 2024-04-13 17:16:49

你好,我試過打這串指令library(xlsx),但它顯示
Error in library(xlsx) : there is no package called ‘xlsx’
我也指定過儲存位置了,但還是不行。是不是已經不支援xlsx了?

Rainee iT邦新手 5 級 ‧ 2024-06-12 22:42:51 檢舉

您好,可以先到library確認xlsx是否安裝成功,可以從下方截圖來找到自己安裝package的路徑。
https://ithelp.ithome.com.tw/upload/images/20240612/20162612SSeDsrJm55.png

我要留言

立即登入留言