Rとウェブ解析:コード可読性向上!「%>%」(パイプ)でつなげるmagrittrパッケージ

Rの解析に役に立つ記事
スポンサーリンク

Rでは変数へのデータを代入する方法として「<-」を使用します。でもこの方法だと、むやみに変数が増える場合がありコードを改良する際に可読性に障害が出る場合があります。そこで、コードの可読性を向上するmagrittrパッケージをご紹介します。このパッケージを利用することで”<-“ではなく「%>%」(パイプ)でコードをつなげることで、可読性が向上するのでぜひ試してみてください。ただ、magrittrパッケージをインストール必要があるのが難点です。


スポンサーリンク

「magrittr」パッケージの導入

下記コードを実行することで導入することができます。
参考URL: https://github.com/smbache/magrittr

#CRANからのインストール
install.packages("magrittr")

#githubからのインストール
library(devtools) #devtoolsが無い場合は右を実行:install.packages("devtools")
install_github(“smbache/magrittr")

「%>%」(パイプ)の使用例

基本例とggplot2を組み込んだ例を示します。なお、基本例に示されているコードで出力される図は全て一緒です。

基本例です。従来の方法も参考までに示します。

[code language="R"]
#%>%&#12434;&#21033;&#29992;&#12375;&#12383;&#20363;
c(1:5) %>% #&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;
  Dist(method = "euclidean") %>% #&#36317;&#38626;&#12398;&#35336;&#31639;
  hclust(method = "complete") %>% #&#32080;&#21512;&#12398;&#35373;&#23450;
  as.dendrogram %>% #&#12487;&#12531;&#12489;&#12525;&#12464;&#12521;&#12512;&#12463;&#12521;&#12473;&#12408;&#12398;&#22793;&#25563;
  plot #&#12503;&#12525;&#12483;&#12488;

#&#24467;&#26469;&#12398;&#26041;&#27861;
#&#20363;1
plot(as.dendrogram(hclust(Dist(c(1:5), method = "euclidean"), method = "complete")))
#&#20363;2
Data <- c(1:5)
DistData <- Dist(Data, method = "euclidean") #&#36317;&#38626;&#12398;&#35336;&#31639;
HclustDistData <- hclust(DistData, method = "complete") #&#32080;&#21512;&#12398;&#35373;&#23450;
PlotData <- as.dendrogram(HclustDistData) #&#12487;&#12531;&#12489;&#12525;&#12464;&#12521;&#12512;&#12463;&#12521;&#12473;&#12408;&#12398;&#22793;&#25563;
plot(PlotData) #&#12503;&#12525;&#12483;&#12488;

#&#12371;&#12435;&#12394;&#20351;&#12356;&#26041;&#12418;&#20986;&#26469;&#12414;&#12377;&#12290;
ShowPlot <- c(1:5) %>% #&#12487;&#12540;&#12479;&#12398;&#28310;&#20633;
  Dist(method = "euclidean") %>% #&#36317;&#38626;&#12398;&#35336;&#31639;
  hclust(method = "complete") %>% #&#32080;&#21512;&#12398;&#35373;&#23450;
  as.dendrogram %>% #&#12487;&#12531;&#12489;&#12525;&#12464;&#12521;&#12512;&#12463;&#12521;&#12473;&#12408;&#12398;&#22793;&#25563;
  
  plot(ShowPlot) #&#12503;&#12525;&#12483;&#12488;

ggplot2を組み込んだ例

library("magrittr")
library("ggplot2")
library("dplyr")

iris %>%
  subset(iris[,5] == "setosa" | iris[,5] == "virginica") %>%
  qplot(Sepal.Length, Sepal.Width, color = Species, data = ., geom = "line") %>%
  print

出力される図

基本例

magrittrデンドログラム例

ggplot2を組み込んだ例


少しでも、ウェブや実験の解析が楽になりますように!!
もし、不明点がありましたらこちらからお問い合わせください。

タイトルとURLをコピーしました