R_pivot_table_20240906

Topic(Purpose / Outcome:目的・期待される成果)

Conductor
Conductor

縦持ちデータの横持ち化

Visualization(How / Output:事実整理 / 最終ゴール)

Visualizer
Visualizer

青は回帰直線。plot_time_seriesを利用すればggplotを利用しなくても簡単に描画可能。

Script Design / Summary(How:設計図・概要・論理構築)

Wrangler
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(抽出~整形)

Raw data(How:生データ抽出元)

  • Source: Yahoo finance

Raw data(How:生データ抽出方法)

  • SQL読込: –
  • CSV読込: –
  • API読込 : 〇

Raw data(How:生データの構造 / 種類)

Extractor
Extractor

元々のデータフレーム

Wrangling (How: Loading・生データ読込)

Wrangler
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")

Wrangling (How: before output、Output前のデータ構造)

Wrangler
Wrangler

視える化に合わせて編集

pivotでクロス集計表を作成。行:.rows = YEAR(date)、列:ccolumns = ~ symbol。値は.values = ~ adjusted。

メモ

  • 行 (row) :レコード、Observation
  • 列 (column):特徴量、変数、次元数、次元の削減(Dimensionality Reduction): 高次元データを少ない次元に圧縮し、モデルの効率を上げるための手法。
  • 値:data point、Feature
  • Wide format:クロス集計表(横持ちデータ)、Long format:縦持ちデータ

参考リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA