R言語のデータ分析レポートをShinyでインタラクティブにしてみる~「アプリケーション作成編」
近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第17回(後編)
-
- Page 4
Shinyアプリ作成
実際に、「Tech-Sketch」出張所版ワードクラウドレポートを実装していきます。完全な形のコードはこちらから取得できます。
global.R
global.Rであらかじめ記事の一覧をlist型として読み込ませます。
# 全記事をlistとして保持
articles <<- list("R言語のデータ分析レポートをShinyでインタラクティブにしてみる~「環境構築編」"="8148",
"WebRTC(PeerJS)で遠隔作業支援システムを作る(実装編2)"="8018",
"WebRTC(PeerJS)で遠隔作業支援システムを作る(実装編1)"="8017",
……(以下略)……
選択した記事の中身の単語をファイルから読み込む関数を定義します。
ファイルはあらかじめカウント済のTSVファイルを用います。区切り文字はタブなので、read.csv()関数のオプションはsep="\t"としておきます。
# articleディレクトリから該当記事のTSVファイルをdata.frame型で読み込む
read.csv(sprintf("./articles/%s.tsv", article), sep="\t", encoding="UTF-8")
ui.R
ui.Rでは以下をパラメータとして入力できるように定義します。基本的にSidebar PanelもMain Panelも変数名、ラベル名以外は先ほどのサンプルコードそのままです。
# サイドバー
sidebarPanel(width = 5,
selectInput("selection", "記事を選んでください",
choices = articles),
actionButton("update", "更新"),
hr(),
sliderInput("freq",
"出現頻度の下限値:",
min=1, max=50, value=5),
sliderInput("max",
"最大単語数:",
min=1, max=300, value=100)
),
# ワードクラウドと記事へのリンクを表示
mainPanel(width=7,
plotOutput("plot")
server.R
続いて、server.Rです。
server.Rでは、ワードクラウドの入力のデータ型がdata.frame型になりますが、基本的な流れは同じです。
# 画面(ui.R)へ渡すワードクラウドを変数output$plotへ格納する
output$plot <- renderPlot({
article.df <- article()
# ワードクラウドの作成(min.freqとmax.wordsの値は画面から入力された値を受け取る)
wordcloud_rep(article.df$word, article.df$freq, scale=c(4,0.5),
min.freq=input$freq, max.words=input$max,
colors=brewer.pal(8, "Dark2"))
})
以上でアプリは完成です。みなさんのクライアントマシンの環境のRコンソール上で以下のコマンドを実行してみてください。
> install.packages(c('wordcloud', 'memoise')) # パッケージのインストール
> runApp() # shinyの起動
以下のようなワードクラウドレポートが表示されたのではないでしょうか。試しに別の記事を選んで「更新」ボタンを押してみてください。選んだ記事のワードクラウドが表示されるでしょう。
もし、日本語が文字化けしている場合は、server.Rで日本語に対応したフォントファミリーの指定が必要です。以下とサンプルコードを参考に指定してみてください。文字化けしていない場合はこちらの対応は不要です。
Macの場合
par(family="Hiragino Mincho Pro W6") # Macの場合
Ubuntuで日本語フォントがインストールされていない場合
$ fc-list : family # インストール済みのフォントファミリーの確認 DejaVu Sans Mono ……(中略)…… $ sudo apt-get install fonts-ipaexfont # IPAフォント
par(family="IPAexMincho") # Ubuntu
この記事は参考になりましたか?
- 近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧
- この記事の著者
-
白石 康司(TIS株式会社)(シライシ コウジ)
TIS株式会社 コーポレート本部 戦略技術センター所属。現在、機械学習技術の研究、機械学習をベースとしたアプリケーションの企画・開発を、PythonやR言語をベースに行っている。 機械学習その他に関する社内研修やオープンな技術勉強会(Tech-Circle)の企画運営にも従事。 もともと、金融系基幹Webシステム開発でのアプリケーションアーキテクチャ/データモデル設計、データベース(Oracle)担当を経...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

