shinyappsのデプロォーイ(deploy)周りのメモ
認証名のトークン・パスワードは.Rprofileに書いておくのがよさげ
以下を参考に、.Rprofileファイル内に、optionなんかを使って設定しておくのがよいのかなと。これがベストプラクティスなのかは知らない。
optionを自分で追加できるってのがミソ。
> options(teramonagix=1:10) > options()$teramonagix [1] 1 2 3 4 5 6 7 8 9 10
今回の場合だと
shinyapps::setAccountInfo( name='teramonagi', token=options()$shinyapps.token, secret=options()$shinyapps.secret )
というように書いている。
ディレクトリ名を表す際の末尾のパス・セパレータはいれちゃいかん!!!on Windows
デプロイをバッチ叩くだけでいいようにしたくて、
deployApp(paste0(getwd(), "/../"))
ってバッチの中で書いてたんだけど、これはだめだった on Windows。正しくは
deployApp(paste0(getwd(), "/.."))
これは多分
に書いてある
Trailing path separators are invalid for Windows file paths apart from ‘/’ and ‘d:/’ (although some functions/utilities do accept them), so as from R 3.1.0 a trailing / or \ is removed.
ってことっぽくて、例えば以下のコードで似たような事例を確認することができる。
> path <- "C:/temp/moge" > file.exists(path) [1] TRUE > file.exists(paste0(path, "/../")) [1] FALSE > file.exists(paste0(path, "/..")) [1] TRUE
今回のケースでは、上記のdeployApp関数の中で呼ばれているfile.exists関数がFALSEを返してきやがるので、処理が途中で終了してバッチが上手く走らなかったというお話。
httpsアクセス内でのread.csv
引数のファイル(URL)は"http://~~~"じゃないとだめだった。はじめhttpsにしていたのだが、アプリが起動しなかった。この辺のエラーログはshinyappsの管理画面のLOGから取れるので、ありがたい&ググりやすい。
Rの環境設定周りのお話
R_HOMEだの.RProfileだのはめんどいので使っていなかったのだが、これがあると便利なので、今回は設定した。以下を見ておけば大体OK。この資料内で言及されているPDFも良い。
ID名など
output系のIDに、ハイフン"-"を使ってはいけない(アンダースコア"_"はOK)。これはRの変数名のルールとしてハイフンが使えないからで、具体的にはこのIDに対して、処理を割り振る時に、
output$hoge-hoge
と各必要があり、ここで処理が落ちるから。