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

Rの解析に役に立つ記事

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

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

利用はフォルダ内の「server.R」と「ui.R」にオリジナルのコマンドを追記して「RunShinyApp.vbs」をダブルクリックすることを想定しています。各ファイルのエンコードはUTF-8を想定しています。

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

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

実行コマンドはwindows 11のR version 4.1.2で確認しています。


スポンサーリンク
スポンサーリンク

実行コマンド

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

###ファイルの保存先を指定
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)

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

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