[R語言應用] 利用R語言複製與貼上資料,輕鬆讀進試算表的資料
0Last Updated on 2023-10-05
你有沒有在試算表裡面清理資料到一半,想把它讀到R裡面處理,但有覺得按照規定的格式存檔很麻煩?這篇文章告訴你解決方法
平常工作中常常要清理資料,可是清到一半有時候要從R裡面輸出,拿去Excel 或是 PPT 畫圖,有時候又要從 google sheets 讀資料,但是這樣切換來切換去又要複製貼上很麻煩嗎?
我整理了在R語言當中,如何利用套件在R裡面複製貼上資料的方法,讓你不用每次都要整理格式匯入又匯出,快速搞定資料清理作業。
R語言中複製貼上資料相關套件介紹
在R語言中,如果想要複製貼上資料,除了利用像是 readr
的套件,把 csv, xlsx 等格式的檔案輸入或者輸出以外,你也可以方便地利用其他套件,在把資料整理成正確的格式前,快速地丟到R裡面進行下一步。
clipr
: 它的函數雖然少,但是功能明確。它可以像平常按右鍵,或是用快速鍵 ctrl + c/v 一樣,處理複製貼上資料的任務。psychTools
: 在針對表格資料複製貼上的時候,clipr
有時讀取到的資料不符合原先的格式,psychTools
有專門的函數可以應對這種情形。
怎麼利用R語言複製貼上資料
底下來依序介紹 clipr
和 psychTools
的使用情境。
clipr
實際上到底怎麼運作呢?使用上會有2個情境。
情境一:想像我們正在讀一篇報導,想把這篇報導中的不同段落丟到R語言裡面,並儲存成變數。這時候我們可以先選取文字後,按下右鍵複製,或是直接 ctrl + c,接著打開 RStudio,創立新的 character 變數,並且用引號把剛剛複製的內容貼到其中。不過,如果段落很多,但因為要人工節選,所以不能直接全選,這時候怎麼看?這就是 clipr
派上用場的時機。
底下介紹幾個常用函數:
– read_clip()
: 白話一些解釋,你已經複製了資料,接著在 R 裡面使用這個函數,就能夠跳出你複製好的那段資料。
– write_clip()
: 同上,你可以把 R 裡面變數的資料「輸入」到 write_clip() 中,接著去別的地方貼上,就能貼出剛剛變數的資料了。
底下會用到一個詞,叫做 clipboard,它是什麼意思呢?當我們選擇一段文字、數字,接著按下複製鍵,執行這個動作後,就會把資料儲存到 clipboard 中;按下貼上時,就會把 clipboard 中儲存的資料貼上囉。
理解了之後,來說明一下怎麼使用 clipr
,但因為是靜態的沒錄影片,所以是展示類型的程式碼,你要先自己按下複製,或是再之後貼上才能理解效果。
library(clipr)
### 把 clipboard 中(你已經複製好)的內容存在 text 變數中
text <- read_clip()
### 把 text 變數中的內容存到 clipboard 中,就可以貼到別的地方了
write_clip(text)
psychTools
psychTools
套件其實本來是為了補足 psych
套件所創,兩者都是為了心理學(psycology)研究服務,不過因為 psychTools
處理複製貼上的功力了得,所以後來我都會單獨使用它。
什麼時候會用到 psychTools
?當你的資料是表格的時候,就會很好用。
要複製的資料
library(psychTools)
### 來看效果
clipr::read_clip()
# [1] "項目\t金額" "食物\t0" "衣服\t10,600" "租金\t15,000" "交通\t1,200"
### 比較
psychTools::read.clipboard()
psychTools::read.clipboard.tab()
# dataframe... 以下省略
比較上面這個結果,一個複製出來的還是一段文字,但另一個複製出來的就是一張 dataframe 了(我省略了實際長相,是一個4列2行的資料表)。
psychTools
的好用之處不只如此,它還可以對付沒有欄位名稱的資料。
要複製的資料-沒有欄位名稱
如上圖所見,我改成選取資料列本身,不選欄位名稱了。這時,我們只要在函數裡面加上 header
參數就好。
psychTools::read.clipboard(header = F)
psychTools::read.clipboard(header = T)
read.clipboard()
預設的 header
參數值為 TRUE
,所以如果沒有指定,讀取沒有欄位名稱的資料時,第一列就會自動變成資料名稱,這樣不符合需求,所以我們可以設定成 FALSE
,這樣欄位名稱就會補成 V1
, V2
, 等名稱囉。
無論是 clipr
或是 psychTools
,都能夠很好地在R語言中簡化複製貼上資料的流程。不過,在這邊有一個小提醒,如果你是在做學術研究,或是你執行的任務很注重溯源,或者很需要紀錄過程的一切步驟,那建議你把「複製貼上」當成處理與分析資料的輔助就好,不要過度依賴。
為什麼呢?因為在學術上很重視研究的可重複性(reproducibility),如果你為了方便,在 Excel 跟 RStudio 裡面交叉處理資料,複製貼上個幾次根本就忘記經過什麼流程,就算得到好的結論,也可能尋不回當初的做法。工作也是一樣,老闆請你做一個分析的題目,你好不容易分析完,但發現根本不知道拿來當論點證據的資料從哪裡來、怎麼計算而得,那反倒得不償失!請小心謹慎~
小結
這篇文章中,介紹了2個在R語言當中複製貼上資料的套件,分別是 clipr
和 psychTools
,前者簡單好用,後者可以處理比較複雜的資料。希望這類的R語言應用文章足夠實用,也希望你喜歡這篇文章。
No Comments