Обновление, я пытался написать приложение, используя объект (объяснено здесь ), но я получаю ту же ошибку
Обновлена внутренняя функция приложения
CustomPalette <- function(new_pal=NULL){
if (interactive()){
colorfile <- paste(getwd(),"colorfile.txt",sep="/")
if (!file.exists(colorfile)){
file.create(colorfile)
}
app <- list(
ui = fluidPage(
titlePanel("Cherry Pick Your Own Palette!"),
sidebarPanel (hr(),
selectInput('col', 'Options', new_pal, multiple=TRUE, selectize=FALSE, size = 15)
),
mainPanel(
h5('Your custom colors',style = "font-weight: bold;"),
fluidRow(column(12,verbatimTextOutput("col"))))
),
server = function(input,output,session){
outputdata<- reactive({
input$col
})
output$col <- {
renderPrint(outputdata())
}
session$onSessionEnded(function(){
message <- paste(isolate(outputdata())," ")
cat(message,file=colorfile, append=TRUE)
customcolors <- scan(file=colorfile," ")
stopApp(customcolors)
customcolors
})
}
)
}
}
Iя пытаюсь вызвать R Shiny App с аргументом, например customcolors <- runApp(CustomPalette(new_pal = NULL))
Это запускает блестящее приложение, позволяющее пользователю выбирать отдельные цвета, которые приложение возвращает в виде вектора
К сожалению, devtools::check()
выдает ошибку для всего скрипта R
> CherryPickPalette("GoldenTemple","AmritsariPedeWaliLassi")
Error in UseMethod("as.shiny.appobj", x) :
no applicable method for 'as.shiny.appobj' applied to an object of class "NULL"
Calls: CherryPickPalette -> runApp -> as.shiny.appobj
Execution halted
Ниже приведена функция CherryPickPalette
, которая вызывает CustomPalette
функцию, которая содержит блестящее приложение (также включено).
В конечном счете, пользователь должен иметь возможность выполнить CherryPickPalette(name, name2, name3)
, должно появиться блестящее приложение, пользователь должен выбрать любой цвет, который он хочет, и переменная должна быть сохранена и использована внутри всего скрипта.
# visible to user
CherryPickPalette <- function (name, name2=NULL, name3=NULL){
### snipped code
customcolors <- runApp(CustomPalette(new_pal = NULL))
customcolors
}
# hidden from user
CustomPalette <- function(new_pal){
if (interactive()){
colorfile <- paste(getwd(),"colorfile.txt",sep="/")
if (!file.exists(colorfile)){
file.create(colorfile)
}
shinyApp(
ui = fluidPage(
titlePanel("Cherry Pick Your Own Palette!"),
sidebarPanel (hr(),
selectInput('col', 'Options', new_pal, multiple=TRUE, selectize=FALSE, size = 15)
),
mainPanel(
h5('Your custom colors',style = "font-weight: bold;"),
fluidRow(column(12,verbatimTextOutput("col"))))
),
server = function(input,output,session){
outputdata<- reactive({
input$col
})
output$col <- {
renderPrint(outputdata())
}
session$onSessionEnded(function(){
message <- paste(isolate(outputdata())," ")
cat(message,file=colorfile, append=TRUE)
customcolors <- scan(file=colorfile," ")
stopApp(customcolors)
customcolors
})
}
)
}
}