とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R言語】forで回して、do.call("grid.arrange")で複数グラフを表示、その後画像を保存。

forで回して、do.call("grid.arrange")で複数グラフを表示、その後画像を保存。

複数グラフの保存は以前と同じように リストにggplotオブジェクトをぶち込む。 do.callをそのまま変数に入れてggsaveで保存。

 
plots <- list() #リストを用意する
i <- 1
df_iris <- iris
varname_df <- names(iris)
length(varname_df)

#aes_stringを使用するとベクトルで軸を指定できる

for(i in 1:(length(varname_df)-2)){
  plots[[i]] <- 
    ggplot(data = df_iris,aes_string(x = varname_df[i],y = varname_df[i+1],colour="Species"))+
    geom_point()+
    theme_bw()+
    theme(text = element_text(size=8),
          axis.text.x = element_text(angle = 90, hjust = 1,vjust=0.5),
          axis.text.y = element_text(size=10),
          axis.title=element_text(size=10,face="bold"))
}

do.call("grid.arrange", c(plots, ncol=2))

p3 <- do.call("grid.arrange", c(plots, ncol=2))
ggsave("filename.jpg", p3)


こんな感じ。 f:id:M_taka072:20200212215806j:plain

【R言語】エクセルデータ読み込み時のカラム型の指定

エクセルデータ読み込み時のカラム型の指定

エクセルデータ読み込み時に型を指定するときのテクニック repを繰り返せば楽だが、 列数が変わった時に対応できるような指定方法はないか?

データ:「マクロ経済学新版(有斐閣)」齋藤,岩本,太田,柴田 著(2016)におけるインターネットサポートページからダウンロードしたもの (http://www.yuhikaku.co.jp/books/detail/9784641053847

d <- readxl::read_xlsx("~/Downloads/Fig_9-3_名目円ドルレートと実質円ドルレート.xlsx",
                       sheet = 2, col_names = F, skip = 2,
                       col_types = c("date", rep("numeric", 5), "date", rep("numeric", 2)))