4

次のチュートリアルに従って、Shiny アプリケーションを Windows デスクトップ アプリとしてパッケージ化しました: http://www.r-bloggers.com/deploying-desktop-apps-with-r/

私の Shiny アプリケーションでは、ユーザーが pandoc と MikTex を使用して PDF レポートを生成できるようにしています。これをデスクトップ アプリケーションで機能させるために、runShinyApp.R スクリプトに次のコードを追加しました。

Sys.setenv(PATH=paste("C:/Users/WoBa/Documents/dist/pandoc",sep=";",
"C:/Users/WoBa/Documents/dist/miktex/miktex/bin/"))

これは正しく機能しますが、パスを変更せずにアプリケーションを他のユーザーに配布できるように、このパスを相対パスにしたいと考えています。

私は次のことを試しましたが、これはうまくいきませんでした:

Sys.setenv(PATH=paste("./pandoc",sep=";",
"./miktex/miktex/bin/"))

フォルダ構造は次のとおりです。

dist/
 + GoogleChromePortable
 + miktex
 + pandoc
 + R-Portable
 + runShinyApp.R
 + run.bat

このパスを相対にする方法を知っている人はいますか? (Windows の場合) とても役に立ちます!

4

2 に答える 2

2

runShinyApp.R スクリプトで次のコードを使用して、相対パスを指定することができました。

miktex = file.path(getwd(), 'miktex/miktex/bin/')
pandoc = file.path(getwd(), 'pandoc')

Sys.setenv(PATH=paste(pandoc, sep=";", miktex))

これは将来他の人に役立つ可能性があるため、答えを提供するだけです。

于 2016-01-14T09:06:06.610 に答える