2017-02-25 13 views
0

runApp()を使用すると、自分のアプリが自分のコンピュータでローカルに正しく動作します。 ERROR:なしSE pudo encontrarラfunción「DMY」エラー:AppをShinyに展開するときに「dmy」関数が見つかりませんでした

に変換します。 ERRORを

問題は、私はそれをデプロイするとき、それは私にそれが機能を見つけることができないというエラーを与えています。関数 "dmy"を見つけることができませんでした。

この機能は、私がローカルに持っているlubridateの一部であり、サーバーにインストールする必要があることはわかっていますが、できません。私は周りを見回して、私は見つけることができません library(lubridate) は行く必要があります。ここで

は(シャイニーで不正な構文のため申し訳ありませんが、イム新しい)私のコードです:

#Comienzo la aplicación 

#Cargo las librerías 
require(shiny) 
require(rsconnect) 
require(lubridate) 

#Cambio el directorio (solo lo uso si lo voy a correr local) 
#setwd("C:/Users/borja.sanz/Desktop/Borja/R/Shiny/Directorio - Proyecciones Productos") 


#Cargo los datos 
data<-read.csv("./data/Pruebas Shiny.csv") 

#Obtengo los niveles de cada factor 
Producto.Maestro = levels(data$Producto.Maestro) 
Producto = levels(data$Producto) 
Pais = levels(data$Pais) 

#Cambio las fechas a formato de fecha 
data$Fecha = dmy(data$Fecha) 

#Extraigo el año 
data$Año = as.factor(year(data$Fecha)) 

#Obtengo los niveles de Año 
Años = levels(data$Año) 

#------------------------------------------------------------------- 
#Comienzo la interfaz de usuario 
ui <- 
    shinyUI(pageWithSidebar(
    headerPanel("Proyecciones de Productos"), 
    #Creo los inputs del sidebar 
     sidebarPanel(uiOutput("duracion"), 
        uiOutput("pais"), 
        uiOutput("año"), 
        uiOutput("producto.maestro"), 
        uiOutput("producto")), 
     mainPanel() 
) 
) 


#Comienzo el archivo de servidor 
require(shiny) 
require(lubridate) 

server <- function(input, output) { 
    output$duracion = renderUI(sliderInput(inputId = "duracion", 
             label = "Seleccione la duración de su promoción:", 
             value = 45, min = 15, max = 90) 
) 

    output$pais = renderUI(selectInput(inputId = "pais", 
            label = "", 
            choices = c("Seleccione un país",levels(data$Pais)), 
            selected = "Seleccione un país") 
) 

    output$año = renderUI(selectInput(inputId = "año", 
            label = NULL, 
            choices = c("Seleccione un año",levels(data$Año)), 
            selected = "Seleccione un año") 
) 

    output$producto.maestro = renderUI(
     selectInput(inputId = "producto.maestro", 
         label = NULL, 
         choices = c("Seleccione un producto maestro",levels(data$Producto.Maestro[which(data$Pais == input$pais & data$Año == input$año)])), 
         selected = "Seleccione un producto maestro") 
) 

    output$producto = renderUI(
    if(input$pais == "Seleccione un país" || input$año == "Seleccione un año" || input$producto.maestro == "Seleccione un producto maestro"){return() 
    }else selectInput(inputId = "producto", 
        label = NULL, 
        choices = c("Seleccione los productos relevantes",levels(factor(data$Producto[which(data$Pais == input$pais & data$Producto.Maestro == input$producto.maestro)]))), 
        selected = levels(factor(data$Producto[which(data$Pais == input$pais & data$Producto.Maestro == input$producto.maestro)])), 
        multiple = TRUE) 
) 
} 

#Corro la aplicación 
shinyApp(ui = ui, server = server) 
+0

おそらく、潤滑剤パッケージをロードしていません。私は 'Años 'のような引用されていない名前についていくつか心配しています –

+0

@ 42-私は奇妙な文字を修正しました。保存時にエンコードされたために発生しました。私は、私はlubridateパッケージをロードしていない知っているが、私の質問はどこに私のコードでサーバーにロードされる必要がありますか? – borjasanz

答えて

0

仕事は、周りの

lubridate::dmy()を使用する代わりに、require()かとlubridateパッケージをロードするかもしれませんlibrary()。そうするには、dmy()のインスタンスをlubridate::dmy()に置き換える必要があるため、もう少しタイピングが必要です。

+0

それは動作しませんでしたので、私はちょうどlubridateの代わりにPOSSIctを使用しました。しかし、私は今ggplotで同じエラーが発生しています。どんな助け? – borjasanz

+0

あなたのコードは単一のファイルapp.Rですか?私も光っているので、あなたのエラーを再現できるかどうかを確認しようとしています。私はあなたがアプリを "デプロイ"することによって何を意味するかわからない。 –

+0

他のアプリを正常に導入しましたか?そうでない場合は、アプリを正常にデプロイしていることを確認してください。たとえば、RStudioギャラリー(https://shiny.rstudio.com/gallery/)からアプリケーションを配備しようとするとします。そうすれば、適切に動作することがわかっているアプリケーションが作成されるため、展開手順にエラーがある可能性をトラブルシューティングできます。 –

関連する問題