初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(三)

前兩篇文章已經介紹過處理 XML 資料的前備知識以及 R 語言 XML 套件的常用功能,是時候磨刀上陣了!本文將採用政府開放資料中的台鐵、高鐵以及微軟 XML 教學檔案進行範例演練,內文中使用到相關的套件及語法將不在一一細述,請參考前兩篇文章的說明。 XML 資料來源: 1. 台鐵時刻表 2. 高鐵時刻表 3. 微軟提供的範例檔

初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(二)

在前一篇教學當中,我們已經看過 XML 的樹狀節點結構、 XML Schema 以及 R 語言 XML 套件的常用功能,在接下來的內容當中,我們將繼續研究 Xpath 語法,並介紹好用的視覺化工具 XML Viewer ,讀者可以搭配閱讀第一篇文章所列出 XML 包的功能作為補充。 剛試用 R XML 套件來讀取 XML 的時候應該不少人會有這樣的疑問:我要如何擷取一份 XML 中特定節點的屬性或者資料?

初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(一)

隨著 API 經濟遍地開花,應用程式與資料源之間的互動實作成為現代軟體工程師必備的基本能力,其中最常見的中前端資料交換格式有 XML 及 JSON 等等,其中 XML 由於傳統商用等級的服務高度支援,且各程式語言都具備完整成熟的套件體系,讀取 XML 對於資料工程師或資料科學家的日常工作而言可說是不可或缺的一部分。 XML 是一種標記語言,類似網頁 HTML ,透過 < 各種TAG > 的定義統一化規格並豐富化資料意義,配合 Schema 讓資料結構具備高度可程式化能力,再加上容易維護的優勢,在許多資料串接實務中是很流行的通用資料格式(別再說只會 CSV 啦!)。 可惜的是,許多立志朝向資料科學領域的學生很容易忽略 XML 的學習,加上網路上搜尋「 R XML」的熱門網頁例如這篇教學《使用 R 讀取開放資料 (CSV, XML, JSON)》通常比較簡略,因此有了這篇教學分享文章的誕生,讓我們一起來練習。

統計R語言實作筆記系列 – R的字串處理:grep套件包(grep、grepl、regexpr、gregexpr、regexec)

差不多從 7、8 年前首次聽到 R 這個名字的時候開始,就對於 R 有一個刻板印象:「很好的數值資料處理工具,但並不擅長用來處理文字資料」。 最近因為有個小任務需要把非結構文字資料轉為結構化的矩陣,趁著這個機會也更新一下自己對 R 的認識,在找資料的過程才發現即使是「中文字串」這個 Text-Mining 當中的煩人問題,現在也可以透過 R 當中的套件做快速的處理,分析者甚至不需要了解何謂程式語言中的 regular expression,簡直神奇!

Excel 交互參照必學神器, 用 lookup 系列函數一鍵搞定資料比對 : hlookup篇

延續上一篇的 vlookup 教學文章,藉由先給定參照值,再於指定範圍內尋找符合條件的資料並傳回指定「欄位」的對應數值,藉著介紹的 hlookup 也大同小異,但找到符合條件的資料後卻是傳回指定「列」的對應數值。 由於大部分資料庫匯出的格式,欄位代表的是變數,列資料代表的是樣本(或筆數),以至於絕大部份時候會用到的是 vlookup ,因為我們希望回傳的通常是同一筆樣本在不同變數的數值,這樣就能夠在不同的資料庫(例如客服中心電話紀錄 vs 銷售紀錄)根據相同的 key 值(例如客戶編號),建立一個新的資料集或摘要表來使用,但有些時候 hlookup 也是可以派得上用場,像是典型的實驗設計表格。 範例表格如下,這是一個飲料好感度盲測研究的實驗資料。 假如我們想把指定的資料填入一組如下方的特定清單,該怎麼做呢? 當然就是要透過 hlookup 囉! 如同 vlookup , hlookup 也擁有 4 個參數,唯一的差別是傳回值的參數,在 vlookup 中是「Col_index_num」,可指定要傳回數值的垂直範圍,在 hlookup 中則是「Row_index_num」,用來指定要傳回數值的水平範圍。 Lookup_value 想要指定的參照值在此設定,以本例而言,是各廠牌的飲料名稱,先選擇摘要工作表中的 A1:A10 範圍作為參照值。 Table_array 接著指定要被比對的資料範圍在此設定,至少需要包含兩列(Row),一列用來和參照值比對,另一列則是提供要回傳的資料。以本例而言,選擇 A1:K5 的範圍。 Row_index_num 針對被比對的資料範圍(根據 Table_array 設定的範圍),指定要回傳的值,指定的方式是選擇所要回傳的「第幾列」的資料,順序由上至下。以本例而言,希望回傳盲測組 C 的評分,也就是第 4 列,填入數字 4。 Range_lookup 這是一個邏輯判斷式,填入「TRUE」or「FALSE」以指定選擇的標準。若填上 FALSE… Continue Reading

Excel 交互參照必學神器, 用 lookup 系列函數一鍵搞定資料比對 : vlookup篇

有一陣子沒有寫部落格了,最近遇見很多年輕的朋友,發現許多人等到進入職場以後,才發現原來職務說明中所謂「具備運用 Excel 的能力」,並不是指能夠打打加減乘除而已,只有學會了運用 Excel 的函數,才能在資料分析時達到事倍功半的效果,也才算是真正會用 Excel。 正因如此,就來分享一下 Excel 的使用技巧吧。 Excel 當中主要的函數列表,可以參考 Microsoft 提供的清單(按此)。在官方的分類底下,有一類就叫做「查閱與參照函數」,相同的分類也可以在各版的 Excel 函數說明中找到,可惜對於 Excel 使用不深的人,比起「統計」、「財務」等類別,這是一個經常會被遺忘的函數集,不過若以泛用性而言,參照函數或許才是各 Excel 課程首先必須著墨的部分。 不得不說,它真的太重要啦,在企業中 Excel 的使用量很大,就算自己不用,你的客戶或供應商八成也都用得很兇,而且 Excel 的應用範圍也很廣,幾乎所有部門都能用得到,各種專案合作中只要看到別人該用卻不用對應的函數,只靠手動製作資料摘要,我就會忍不住內心嘆氣+翻白眼,因為這實在是太浪費人力了,畢竟好人才的時間成本可是很貴的啊!! 各位看官,介紹參照函數必學第一名,就是大名鼎鼎的「vlookup」函數。 假如你有以下的狀況…: 必須同時管理許多個部份資料有重疊的工作表 沒有任何單一工作表包含所有要用到的資料欄位 工作表的資料筆數很多,不太可能花時間人工一一對照 那麼再不學 vlookup ,就真的太遜啦! 還不快看看底下的 vlookup 教學! 本文用氣象局的觀測資料為例,範例包含兩個工作表各自包含「酸雨PH值」及「雨量」的資料,其中「地點(鄉鎮名)」是兩個資料集的共同點,如下圖所示: 這裡另外加入一個獨立的工作表,包含了鄉鎮名稱資料方便檢視結果。 假如我們想要建立一個包含鄉鎮、雨量以及酸雨PH值的資料集(如 test 工作表的範例),那麼該怎麼做? 如果不利用 Excel 函數,那麼恐怕我們就得一筆一筆資料尋找,然後複製貼上了,假若只有幾個地點那倒無所謂,但是面對數百個鄉鎮地點,顯然最好的辦法不是手動。藉由 vlookup 函數,我們可以設定一組參照值,然後讓公式根據參照值,在給定的工作表每一列當中尋找符合參照值的資料,回傳設定好的欄位所對應的數值。 然後呢? 點兩下複製公式到所有格子就完成了! 就這麼簡單。 vlookup 共有幾個參數要設定,一一說明如下:… Continue Reading

Data Transformation的一些探討

在進行統計分析時,最重要的元素可能不是深奧難懂的算式工具,也不是待驗證的理論結構,而是最終用來分析的那一堆資料。而資料多變的性質有時候會給分析人員帶來許多麻煩。 在任何研究當中,取得隨機、獨立、有代表性的樣本都是首要的大事,然而即使是「正確」的資料有時不見得是可以順利處理的,例如在線性迴歸( Linear Regression )當中我們經常會遇見這樣的情形:運算結果不符合研究預期、模型解釋力低下,更糟糕的是看起來雖然有某些關聯性,卻不足以在統計上證明資料確實屬於線性相關。 檢驗資料間的相關性,可以用繪圖的方式來觀察,若需要用到相關係數的檢定方法,則應考慮兩變項的尺度關係。 資料轉換與統計假設 網路流傳的一份統計補充教材裡有著整理表格可供參考: X Y 名義變項 次序變項 等距以上變項 名義變項 列聯相關 相關 Kappa一致性係數 四分相關 點二系列相關 二系列相關 多系列相關 次序變項 Spearman等級相關 Kendall等級相關 Kendall和諧係數 等距以上變項 點二系列相關 二系列相關 多系列相關 Pearson積差相關 淨相關 相關比 如果資料間不需檢定就已能看出不符合線性關係的假設,那麼我們就可以使用考慮資料轉換( Data Transformation )的方法來改善這些問題,資料轉換顧名思義,就是針對自變項 或是應變數 先行運算後再重新導入迴歸以調整模型的作法。 常見的轉換方式包括開根號、冪次轉換( Power Transformation )、取對數、遞延轉換( Lagged Transformation )等等,而非線性關係又可以再細分成「可轉換為線性」與「不可轉換為線性」兩種,聽起來是否匪夷所思? 思考一下這個模式: 請問這個式子是線性還是非線性?乍看之下,連乘的運算應該是一種非線性關係,但是透過轉換,你會看出其實它也是一種線性關係。讓我們把算式兩邊同時加上 LOG 運算,結果如下: 透過轉對數,我們可以將原本非線性的式子轉為線性模式。經驗上,右偏的資料型態可以取對數來修正,左偏的資料可以考慮2次或3次方的曲線型態。項值小於1的冪次轉換也是一種可以考慮的方法,以此法為例繪圖如下: 透過例圖可以清楚看見,將非直線關係的… Continue Reading