Function 我如何在图形中引用ggvis绘图上的点击点

Function 我如何在图形中引用ggvis绘图上的点击点,function,shiny,ggvis,Function,Shiny,Ggvis,我希望使用点击点的值进行进一步处理,但不清楚如何引用数据 library(shiny) library(ggvis) library(dplyr) df <- data.frame(a=c(1,2),b=c(5,3)) runApp(list( ui = bootstrapPage( ggvisOutput("plot") ), server = function(..., session) { # function to handle click getData

我希望使用点击点的值进行进一步处理,但不清楚如何引用数据

library(shiny)
library(ggvis)
library(dplyr)

df  <- data.frame(a=c(1,2),b=c(5,3)) 



runApp(list(
  ui = bootstrapPage(
  ggvisOutput("plot")

),

server = function(..., session) {

# function to handle click
getData = function(data,location,session){

if(is.null(data)) return(NULL)

# This returns values to console
print(glimpse(data))
# Observations: 1
# Variables:
# $ a (int) 2
# $ b (int) 3

}

 # create plot
 df %>%
  ggvis(~a, ~b) %>%
  layer_points() %>%
  handle_click(getData) %>%
  bind_shiny("plot")

# further processing

clickedData <- reactive({

 # how do I reference the value 'a' e.g. 2 of the clicked point'
})
}
))
库(闪亮)
图书馆(ggvis)
图书馆(dplyr)
df%
ggvis(~a,~b)%>%
图层_点()%>%
句柄\u单击(获取数据)%>%
绑定(“绘图”)
#深加工

单击数据这里有一个工作解决方案,它只打印data.frame。你很接近

df <- data.frame(a = 1:5, b = 101:105)

runApp(shinyApp(
  ui = fluidPage(
    ggvisOutput("ggvis")
  ),
  server = function(input, output, session) {
    clickFunc <- function(data, location, session) {
      cat(str(data))
    }

    df %>%
      ggvis(~ a, ~b) %>% 
      layer_points %>%
      handle_click(clickFunc) %>%
      bind_shiny("ggvis")
  }
))
df%
图层\u点%>%
句柄\u单击(clickFunc)%>%
绑定_闪亮(“ggvis”)
}
))
编辑
(免责声明:直到5分钟前,我才在Shining中使用ggvis,所以可能这不是正确的方法,但这是有效的)

下面介绍如何在UI中使用数据

df <- data.frame(a = 1:5, b = 101:105)

runApp(shinyApp(
  ui = fluidPage(
    div("a:", textOutput("aVal", inline = TRUE)),
    div("b:", textOutput("bVal", inline = TRUE)),
    ggvisOutput("ggvis")
  ),
  server = function(input, output, session) {
    clickFunc <- function(data, location, session) {
      session$output$aVal <- renderText({ data$a })
      session$output$bVal <- renderText({ data$b })
    }

    df %>%
      ggvis(~ a, ~b) %>% 
      layer_points %>%
      handle_click(clickFunc) %>%
      bind_shiny("ggvis")
  }
))
df%
绑定_闪亮(“ggvis”)
}
))

谢谢,但我显然没有说清楚。我不想把任何东西打印出来。我想捕获$a的值数据,以便在shinyGreat中进行进一步处理。理想情况下,会话$output$aVal会让它看起来更干净,也许可以尝试使用reactivevariables或reactiveValues()使它更干净。同意-使用reactiveVaues()看起来更整洁