移至主內容
首頁
SLAT Blogs

主導覽

  • 首頁
使用者帳號選單
  • 登入

導航連結

  1. 首頁
  2. 部落格
  3. 肥貓的異想世界

用R做簡單(但實用)的資料整併

By 肥貓, 4 八月, 2021

近期需要從較老舊的圖書館系統匯出想借閱的書目列表,資料結構大概長這樣:

________________________________________

裝訂及其他區別字樣:平裝 

發行性質/價格:新臺幣780元 

一般性資料:20160111d2015 k y0chiy09 e 

正文語文:chi 

......

_________________________________________

但是上面那樣顯然不是適合人閱讀的報表,也不利後續利用。因此需要整理成如下圖的樣式:

我們當然不想滑鼠一個一個慢慢拉,但是該怎麼辦呢?感謝Facebook上R的討論群網友的救援,在徵得當事人同意分享的情況下,以下將介紹(與適度修改)運用的程式碼(以下為預覽):

library(reshape)

df <- read.csv("您的檔案位置", col.names = c("group_id", "x1", "x2"), encoding = "UTF-8" )

#建議在這階段手動設定編碼,否則可能後續會造成許多不必要問題;是否要手動命名col.names請自行斟酌

df <- df[!is.na(df$group_id), ]

#雖然原作者表示不必跑第2行,但是跑了可以刪除一些空的欄位

df2 <- reshape(df, direction = "wide", idvar="group_id", timevar="x1")

#direction意指將資料展開成水平軸較長的表,idvar意指用哪個欄位分組;timevar在這裡則是你想被整理的欄位(如作者、ISBN...等)

  • 資料前處理:

在做資料整併前,您應該先讓系統知道這是哪一本書的資料。所以我們設了一個新變數叫group_id。右邊欄位姑且命名成x1,x2。

再用剛才展示的程式碼下去跑,如果沒意外應該能跑出如下的結果:

(但我習慣把data frame命名為booklist,所以命名會和上面的程式碼略有不同)

這樣顯然是比自己在Excel或Calc上一個一個點快多了。這方法或可適用於其他結構化資料的爬蟲後處理。

  • 肥貓的異想世界

部落格列表

管理日誌
LibreOffice 正體中文文件
肥貓的異想世界
軟體自由運動部落格
馬哥的大小事
My Libre World
社會派宅爸

最新文章

test title
Interview with Sandy Corzeta, Admin of Indonesia's Fediverse Instance 'misskey.id'
簡單處理在Ubuntu終端機啟動Miniconda的問題
在LibreOffice Calc利用Vlookup做精準搜尋
現在就加入 LibreOffice 團隊當全職開發者,處理 RTL/CTL/CJK 等事宜!
[JS 筆記] 可選串連、條件三元、falsy、some與includes
用QGIS + OpenStreetMap + Python 處理線形地理資料
申請墨西哥簽證的經驗談
0805 ITTS 田野筆記:與印尼開源社群的初次接觸
Setting up Mailman3 on Debian 11 (Bullseye)
試解決Zotero安裝後無法使用LibreOffice Integration引用文獻的問題
2023年5月的 LibreOffice 之月的獲獎者!
Powered by Drupal