整理資料的套件之一,來源 https://github.com/tidyverse/tidyr ,用來取代reshape與reshape2的套件。小編也使用過 reshape2 套件,雖然這兩套件大同小異,但tidyr使用起來更順手。這次主要介紹 tidyr 的三個重要函數來整理台指期的三大法人資料。
首先先到期交所網頁下載三大法人資料,以 2017/03/15 至 2017/03/16 台股期貨資料tx.csv為例,例子只取 ”多空交易口數淨額” 與 ”多空未平倉口數淨額” 兩個變數,也可以加入更多的變數。
install.packages('tidyr') library(tidyr) tx <- read.csv("D:/tx.csv") tx <- tx[,c(1, 3, 8, 14)] View(tx)
由 tx 結果可以看到每個欄位並非是同一個身份別的資料,若要做統計回歸必須要將資料作適當的轉換。接下來要介紹使用 tidyr::gather 的函數,與 reshape2::melt 相似。其中的參數 key 便是收集變數名稱所形成的變數名稱, value 即是收集變數值所形成的變數名稱。
tx1 <- gather(tx, key = key, value= value, 多空交易口數淨額, 多空未平倉口數淨額)
View(tx1)

使用 tidyr::unite 將 “身份別 ” 與 “key” 做合併為單一變數 “variable”。
tx2 <- unite(tx1, variable, 身份別, key, sep = '.')
View(tx2)
最後再將 tx2 使用 spread 函數展開,設定欲展開的變數 “variable” 與值 “value” :
tx3 <- spread(tx2, key = variable, value = value)
View(tx3)

tx3 便是各三大法人的 “多空交易口數淨額” 與 “多空未平倉口數淨額” 的整齊資料了。