Conductor
縦持ちデータの横持ち化
Visualizer
青は回帰直線。plot_time_seriesを利用すればggplotを利用しなくても簡単に描画可能。
Wrangler
全体像はこんな感じ
# 1.0 LIBRARIES ----
library(openxlsx)
library(tidyquant)
library(tidyverse)
library(timetk)
# 2.0 GET DATA ----
stock_data_tbl <- c("AAPL", "GOOG", "NFLX", "NVDA") %>% tq_get(from = "2010-01-01", to = "2019-12-31")
stock_pivot_table <- stock_data_tbl %>% pivot_table( .rows = ~ YEAR(date), .columns = ~ symbol, .values = ~ PCT_CHANGE_FIRSTLAST(adjusted) # PCT_CHANGE_FIRSTLAST() 関数は、最初と最後の値の変化率を計算します。 ) %>% rename(year = 1) # rename() 関数は、列名を変更します。1列目をyearに変更。
stock_plot <- stock_data_tbl %>% group_by(symbol) %>% plot_time_series(date, adjusted, .color_var = symbol, .facet_ncol = 2, .interactive = FALSE) # plot_time_series() 関数は、時系列データをプロットします。自動的に移動平均線が追加されます。 # 正確には、ggplot2 パッケージの geom_line() 関数を使用しています(これは回帰直線です) # .color_var = symbol は、symbol列を色分けすることを指定しています。 # .facet_ncol = 2 は、2列でプロットすることを指定しています(グラフ画面)。 # .interactive = FALSE は、インタラクティブなプロットを無効にしています。
# 3.0 CREATE WORKBOOK ----
# * Initialize a workbook ----
wb <- createWorkbook() # createWorkbook() 関数は、新しいExcelワークブックを作成します。
# * Add a Worksheet ----
addWorksheet(wb, sheetName = "stock_analysis") # addWorksheet() 関数は、新しいワークシートを追加します。
# * Add Plot ----
print(stock_plot) # print() 関数は、プロットを表示します。
wb %>% insertPlot(sheet = "stock_analysis", startCol = "G", startRow = 3)
# insertPlot() 関数は、プロットをワークブックに挿入します。
# sheet = "stock_analysis" は、stock_analysisワークシートにプロットを挿入することを指定しています。
# startCol = "G" は、G列からプロットを挿入することを指定しています。
# startRow = 3 は、3行目からプロットを挿入することを指定しています。
# * Add Data ----
writeDataTable(wb, sheet = "stock_analysis", x = stock_pivot_table)
# writeDataTable() 関数は、データフレームをワークブックに書き込みます。
# sheet = "stock_analysis" は、stock_analysisワークシートにデータを書き込むことを指定しています。
# x = stock_pivot_table は、stock_pivot_tableデータフレームを書き込むことを指定しています。
# * Save Workbook ----
saveWorkbook(wb, "005_excel_workbook/stock_analysis.xlsx", overwrite = TRUE)
# saveWorkbook() 関数は、ワークブックを保存します。
# "005_excel_workbook/stock_analysis.xlsx" は、stock_analysis.xlsxファイルにワークブックを保存することを指定しています。
# overwrite = TRUE は、既存のファイルを上書きすることを指定しています。
# * Open the Workbook ----
openXL("005_excel_workbook/stock_analysis.xlsx")
# openXL() 関数は、Excelワークブックを開きます。
Raw data / Wrangling / Feature Engineering(抽出~整形)
- Source: Yahoo finance
- SQL読込: –
- CSV読込: –
- API読込 : 〇
Extractor
元々のデータフレーム
Wrangler
Loading
# Script on Rstudio
# Tips: 読み込み先のファイルは「記載するpath名の始まり」からWorking Directoryとして設定する必要性がある。
stock_data_tbl <- c("AAPL", "GOOG", "NFLX", "NVDA") %>% tq_get(from = "2010-01-01", to = "2019-12-31")
Wrangler
視える化に合わせて編集
pivotでクロス集計表を作成。行:.rows = YEAR(date)、列:ccolumns = ~ symbol。値は.values = ~ adjusted。
メモ
- 行 (row) :レコード、Observation
- 列 (column):特徴量、変数、次元数、次元の削減(Dimensionality Reduction): 高次元データを少ない次元に圧縮し、モデルの効率を上げるための手法。
- 値:data point、Feature
- Wide format:クロス集計表(横持ちデータ)、Long format:縦持ちデータ
参考リンク
- Script事例:https://www.business-science.io/
- Rデータの種類:https://ebreha.com/__trashed/