У меня уже есть ответ на почти такую же тему здесь Dynamic ggvis object in Shiny, но я все еще сложен с похожим фрагментом кода, и я действительно не понимаю, почему.Как вставить диаграмму ggvis из внешнего источника в блестящий?
ui.R
library(shiny)
library(ggvis)
shinyUI(fluidPage(
fluidRow(titlePanel("My app")),
fluidRow(
column(3,
tags$h1('Menu'),
radioButtons('colors', label = 'select bars color',
c("Red"='red','Green'='green','Blue'='blue'))
),
column(9,
tags$h1("hello"),
ggvisOutput('test1'),
tags$h2("Chosen color is",textOutput('testText', inline = T))
)
)
)
)
server.R
library(shiny)
library(ggvis)
shinyServer(function(input, output) {
source("charts.R")
output$testText <- reactive({ input$colors })
input_color <- reactive({ input$colors })
# cars %>%
# ggvis(~speed, fill:= input_color) %>%
# layer_bars() %>%
# bind_shiny("test1", "test1_ui")
chart1() %>%
bind_shiny("test1", "test1_ui")
})
charts.R
chart1 <- reactive({
cars %>%
ggvis(~speed, fill:= input_color) %>%
layer_bars()
})
Я хотел бы назвать chart1
от charts.R
до server.R
. Все работает с ggvis, если я использую прокомментированный код в server.R
, но это не происходит, когда я пытаюсь вызвать функцию ggvis от charts.R
(как в раскомментированном коде).
Кроме того, как вы думаете, является хорошей практикой для создания нескольких сценариев .R, или я должен идти за правильными модулями?