4

光沢のある Web アプリケーションを作成しようとしています。コンピューターにインストールしたパッケージをロードする必要があります。例えば:

## Contents ui.R:
library(shiny)
library(plyr)

shinyUI(pageWithSidebar(

  headerPanel("Hello Shiny!"),

  sidebarPanel(
    sliderInput("obs", 
                "Number of observations:", 
                min = 0, 
                max = 1000, 
                value = 500)
  ),

  mainPanel(
    plotOutput("distPlot")
  )
))

## Contents server.R:
library(shiny)
library(plyr)

shinyServer(function(input, output) {

  output$distPlot <- renderPlot({

    # generate an rnorm distribution and plot it
    dist <- rnorm(input$obs)
    hist(dist)
  })
})

これは、ローカルで ( を使用してrunApp) 実行すると問題なく動作しますが、サーバー (同じコンピューター) 経由で実行しようとすると、plyrパッケージ (またはこの方法で使用しようとする他のパッケージ) がインストールされていないというエラーが表示されます。光沢のあるサーバーで追加のパッケージを使用するにはどうすればよいですか?

4

6 に答える 6

8

両方の場合の出力を比較し、.libPaths()それに応じてサーバー インスタンス / スクリプトを調整します。

たとえば、サーバーがアクセスできない「あなたの」Rパッケージディレクトリにパッケージがある場合があります。このような場合、システム全体のパッケージのインストールが推奨されます。たとえば、Debian / Ubuntu ではデフォルトです。

于 2013-04-17T16:56:32.850 に答える
2

これは、システム ライブラリを台無しにしない解決策かもしれません。の先頭に次のコードを追加しますserver.R

user <- unname(Sys.info()["user"])
if (user == "shiny") {

  # Set library locations
  .libPaths(c(
    "/path/to/your/own/library"
  )
  )

}

これにより、Shiny は独自のライブラリにインストールされているパッケージを優先的に検索し、アプリの開発に使用するパッケージとアプリのデプロイ時に使用するパッケージを同期させます。

shinyユーザーがライブラリ フォルダを正しく表示するには、ライブラリ フォルダのアクセス許可を微調整する必要がある場合があることに注意してください。そうしないと、エラー メッセージが表示されずに、指定された場所を調べることができません。

于 2017-12-05T16:33:11.117 に答える
-2

なぜPlyrが必要なのですか? コード内でそれを使用しているものはありません。とにかく、 R を実行してから、 install.packages('plyr'); を実行することで、Linux R インストールにパッケージをインストールできます。

于 2013-07-23T00:44:51.273 に答える