我想要的只是一种有效的方法,根据fill中的InputSelect框在ui.R中设置ggvis server.R属性。由于fill属性语法需要"tilde“或"~”,所以我无法提供解决方案。
下面的ui.R和server.R只是我尝试的解决方案之一:因为我得到了一个"Error in switch(select, mpg = { : EXPR must be a length 1 vector“,所以在下面的--切换语句--是错误的。不要犹豫,提出完全不同的东西。
提前感谢您的支持!
ui.R
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("select", label = h3("Select box"),
choices = list("mpg" = "mpg", "hp" = "hp", "cyl" = "cyl"),
selected = "mpg")
),
mainPanel(
uiOutput("ggvis_ui"),
ggvisOutput("ggvis")
)
)
))server.R
data(mtcars)
shinyServer(
function(input, output) {
select <- reactive({as.character(input$select)})
data <- switch(select,
mpg = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~mpg) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")},
hp = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~hp) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")},
cyl = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~cyl) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")}
)
}
)发布于 2015-03-05 14:05:39
您可以尝试使用select运行select()表达式,并将开关封装在observer中,以响应地绘制数据:
server.R将是:
shinyServer(
function(input, output) {
select <- reactive({as.character(input$select)})
observe({
data <- switch(select(),
mpg = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~mpg) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")},
hp = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~hp) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")},
cyl = {mtcars %>%
ggvis(~mpg, ~wt,
fill = ~cyl) %>%
layer_points() %>%
bind_shiny("ggvis", "ggvis_ui")}
)
data
})
}
)https://stackoverflow.com/questions/28876873
复制相似问题