Rで解析:WindowsでShinyアプリをダブルクリックで開くコマンドの紹介


投稿日: Rの解析に役に立つ記事

WindowsでShinyアプリをダブルクリックで開くコマンドの紹介です。コマンドをRで実行すると指定したフォルダ内に以下のファイルが作成されます。

なお、作成された各ファイルはRまたはテキストエディタなどで内容を確認できます。

自身で作成したShinyアプリをフォルダ内の「server.R」と「ui.R」に追記して「RunShinyApp.vbs」をダブルクリックするとShinyアプリが起動します。各ファイルのエンコードはUTF-8を想定しています。

何も追記せず「RunShinyApp.vbs」をダブルクリックするとブラウザに下記内容が表示されます。なお、表示ボタンを押しても何も動作はしません。

何かの参考になればと考えます。

windows 10のR version 3.3.3で動作を確認しています。


コマンドの紹介

下記コマンドを実行してください。

###ファイルの保存先を指定
library("tcltk")
#初期作業フォルダを取得
OriWd <- getwd()
setwd(paste(as.character(tkchooseDirectory(title = "フォルダを選択"), sep = "", collapse ="")))

###RunShinyApp.vbsを作成#####
#R.exeのパスを取得
GetComm <- paste0('Set RdoObject = CreateObject("Wscript.Shell")\n',
                  'RdoObject.Run "', file.path(R.home(), "bin", "R.exe", " "),
                  'CMD BATCH --encoding=UTF-8 OpenShiny.R", False')
#保存
cat(x = GetComm,
    file = "RunShinyApp.vbs")
########

###OpenShiny.Rを作成####
OpenSComm <- iconv(paste0('if (!require("shiny")) {install.packages("shiny")}\n',
                          'shiny::runApp(launch.browser = TRUE)'),
                   from = "", to = "utf-8")
cat(x = OpenSComm,
    file = "OpenShiny.R")
########

###ui.Rを作成######
UICode <- iconv(paste0('shinyUI(fluidPage(\n',
                 '#以下にコードを記述\n',
                 '#テストコード\n',
                 'actionButton("action", label = "これはテストです")\n',
                 '))'), from = "", to = "utf-8")
#保存
cat(x = UICode,
    file = "ui.R")
########

###server.Rを作成#####
ServerCode <- iconv(paste0('shinyServer(function(input, output, session){\n\n',
                       '  session$onSessionEnded(function() {\n',
                       '    stopApp()\n',
                       '    q("no")\n',
                       '    })\n\n',
                       '#以下にコードを記述\n\n})'), from = "", to = "utf-8")
#保存
cat(x = ServerCode ,
    file = "server.R")
########

#初期作業フォルダに戻す
setwd(OriWd)

少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク