首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >闪亮+ ggvis:使用ggvis "tilde“或"~”的反应性

闪亮+ ggvis:使用ggvis "tilde“或"~”的反应性
EN

Stack Overflow用户
提问于 2015-03-05 11:31:08
回答 1查看 341关注 0票数 0

我想要的只是一种有效的方法,根据fill中的InputSelect框在ui.R中设置ggvis server.R属性。由于fill属性语法需要"tilde“或"~”,所以我无法提供解决方案。

下面的ui.Rserver.R只是我尝试的解决方案之一:因为我得到了一个"Error in switch(select, mpg = { : EXPR must be a length 1 vector“,所以在下面的--切换语句--是错误的。不要犹豫,提出完全不同的东西。

提前感谢您的支持!

ui.R

代码语言:javascript
复制
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

代码语言:javascript
复制
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")}
      )    
  }
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-05 14:05:39

您可以尝试使用select运行select()表达式,并将开关封装在observer中,以响应地绘制数据:

server.R将是:

代码语言:javascript
复制
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
    })
  }
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28876873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档