readWorksheetFromFile {XLConnect}

現在、各省庁や地方公共団体が公開する表形式データの多くはエクセルファイルで提供されております。但しそれらは主として刊行物制作・発行のための原稿データをアップロードしているだけに留まっている事が多く、2次利用における利便性が考慮されておりません。レイアウトが刊行物そのもののため「セルが縦横無尽に結合されていたり」、「列毎に列名が設定されていなかったり」、「数値や日付の表示形式にすら統一が無い」のが現状です。よって日本のファンダメンタルズ分析に際してはエクセルデータを如何に効率的良くパースできるかが極めて重要となりますが本ページではその始めの一歩、Rでのエクセルファイル読み込む方法を紹介します。
# エクセルファイル読み込み
library(XLConnect)
filePath <- 'sampleData/sample.xlsx'
sampleData <- readWorksheetFromFile(file = filePath,sheet = 1,header = T)
head(sampleData)
        Date USDJPY
1 1998-01-05 132.85
2 1998-01-06 133.59
3 1998-01-07 133.12
4 1998-01-08 133.01
5 1998-01-09 131.39
6 1998-01-10 NA    
# 読み込みデータのクラスを確認
class(sampleData)
[1] "data.frame"
# 個々の列のクラスを確認
lapply(sampleData,class)
$Date
[1] "POSIXct" "POSIXt" 

$USDJPY
[1] "character"
# プロット
sampleData$USDJPY <- as.numeric(sampleData$USDJPY)
ggplot(data = na.omit(sampleData),mapping = aes(x = Date,y = USDJPY)) + geom_line()
Fig. 1:1998-01-05 ~ 2018-12-19におけるドル円レート

Fig. 1:1998-01-05 ~ 2018-12-19におけるドル円レート

read_excel {readxl}

現在、各省庁や地方公共団体が公開する表形式データの多くはエクセルファイルで提供されております。但しそれらは主として刊行物制作・発行のための原稿データをアップロードしているだけに留まっている事が多く、2次利用における利便性が考慮されておりません。レイアウトが刊行物そのもののため「セルが縦横無尽に結合されていたり」、「列毎に列名が設定されていなかったり」、「数値や日付の表示形式にすら統一が無い」のが現状です。よって日本のファンダメンタルズ分析に際してはエクセルデータを如何に効率的良くパースできるかが極めて重要となりますが本ページではその始めの一歩、Rでのエクセルファイル読み込む方法を紹介します。
# エクセルファイル読み込み
library(readxl)
filePath <- 'sampleData/sample.xlsx'
sampleData <- read_excel(path = filePath,sheet = 1,col_names = T)
head(sampleData)
# A tibble: 6 x 2
  Date                USDJPY            
  <dttm>              <chr>             
1 1998-01-05 00:00:00 132.85            
2 1998-01-06 00:00:00 133.59            
3 1998-01-07 00:00:00 133.12            
4 1998-01-08 00:00:00 133.01            
5 1998-01-09 00:00:00 131.38999999999999
6 1998-01-10 00:00:00 NA                
# 読み込みデータのクラスを確認
class(sampleData)
[1] "tbl_df"     "tbl"        "data.frame"
# 個々の列のクラスを確認
lapply(sampleData,class)
$Date
[1] "POSIXct" "POSIXt" 

$USDJPY
[1] "character"
# プロット
sampleData$USDJPY <- as.numeric(sampleData$USDJPY)
ggplot(data = na.omit(sampleData),mapping = aes(x = Date,y = USDJPY)) + geom_line()
Fig. 2:1998-01-05 ~ 2018-12-19におけるドル円レート

Fig. 2:1998-01-05 ~ 2018-12-19におけるドル円レート