2016-12-21 2 views
3

Итак, у меня есть проект R/shiny на Github, который требует некоторых пакетов, например shinyjs, V8 и dplyr, и я указал в коде required(shinyjs) и library(shinyjs).R Shiny требуемые пакеты и Github

На моем компьютере это работает отлично, и если я загружаю копию из Github, которая тоже работает, но если я делаю это с другого компьютера, я должен загрузить необходимые пакеты вручную.

Есть ли способ сделать Rstudio автоматически устанавливать требуемые пакеты, когда кто-то пытается запустить приложение?

+0

Обратная связь на мой ответ будет оценен. –

ответ

2

Это делает это. Здесь была функция: malonypatr's install_load function

скриншоты от RTVS, но я тестировал его и в R-Studio.

library(shiny) 

install_load <- function (package1, ...) { 

    # convert arguments to vector 
    packages <- c(package1, ...) 

    # start loop to determine if each package is installed 
    for(package in packages){ 

    # if package is installed locally, load 
    if(package %in% rownames(installed.packages())) 
     do.call('library', list(package)) 

    # if package is not installed locally, download, then load 
    else { 
     install.packages(package) 
     do.call("library", list(package)) 
    } 
    } 
} 

install_load("shinyjs") 

shinyApp(
    ui = fluidPage(
    useShinyjs(), # Set up shinyjs 
    # Add a CSS class for red text colour 
    inlineCSS(list(.red = "background: red")), 
    actionButton("btn", "Click me"), 
    p(id = "element", "Watch what happens to me") 
), 
    server = function(input, output) { 
    observeEvent(input$btn, { 
     # Change the following line for more examples 
     toggleClass("element", "red") 
    }) 
    } 
) 

Загрузка:

enter image description here App:

Уступая:

enter image description here

+0

Так это правильное решение? –