2015-04-22 2 views
2

Могу ли я разработать приложение R Shiny, которое требует других пакетов? Например,Ошибка в setwd (bundleDir): не могу изменить рабочий каталог

ui.R,

shinyServer(
    pageWithSidebar(
    headerPanel("Shiny App"), 

    sidebarPanel("side bar"), 

    mainPanel(
     plotOutput("myPlot") 
    ) 

    ) 

) 

server.R,

shinyServer(

    function(input, output, session) { 

    output$myPlot = renderPlot({ 

     library("openair") 
     scatterPlot(selectByDate(mydata, year = 2003), x = "nox", y = "no2", 
        method = "density", col = "jet") 
    }) 
    } 

) 

Запустите приложение,

> runApp() 

Listening on http://127.0.0.1:4459 
Loading required package: lazyeval 
Loading required package: dplyr 

Attaching package: ‘dplyr’ 

The following object is masked from ‘package:stats’: 

    filter 

The following objects are masked from ‘package:base’: 

    intersect, setdiff, setequal, union 

Loading required package: maps 
(loaded the KernSmooth namespace) 

Я получаю этот результат на моей локальной машине,

enter image description here

Но когда я пытаюсь развернуть приложение, I это эту ошибку ниже,

> setwd("C:/.../myapp") 
> library(shiny) 
> library(shinyapps) 

Attaching package: ‘shinyapps’ 

The following object is masked from ‘package:shiny’: 

    hr 

> deployApp() 
Preparing to deploy application...DONE 
Uploading application bundle... 
Error in setwd(bundleDir) : cannot change working directory 

Что происходит? Означает ли это, что I не может интегрировать/импортировать родной R с другими пакетами (например, openair)?

EDIT:

> require(openair) 
> deployApp() 

Uploading application bundle... 
Error in setwd(bundleDir) : cannot change working directory 
+0

Если это проблема зависимости, см. '? Shinyapps :: appDependencies'. Это может помочь. – nicola

+0

где находится '? Shinyapps :: appDependencies'? – laukok

+1

@teelou Просто введите '? Shinyapps :: appDependencies' в R. –

ответ

2

Вы не можете использовать setwd() с абсолютным путем в развернутом приложении, так как вы не на вашем компьютере больше, но на другом сервере. Вы можете использовать только setwd() с относительным путем к папке вашего приложения.

Смежные вопросы