gpt4 book ai didi

javascript - Shiny 的 tabPanel 和 Google Analytics

转载 作者:数据小太阳 更新时间:2023-10-29 05:33:15 25 4
gpt4 key购买 nike

我已经阅读了很棒的教程 here .但是,我对 jQuery 的了解为零。我在我的 ShinyApp 中使用多个 tabPanel 来显示我的数据。本教程解释了如何跟踪链接单击事件(效果很好,我按照教程中的说明包含了一个 .js)。有没有办法跟踪用户是否点击了特定的 tabPanel(例如 Panel1Panel2)?我尝试对引用外部资源的链接执行相同的操作,但这不起作用。

tabsetPanel(
tabPanel("Panel1", showOutput("PlotPanel1", 'dimple')),
tabPanel("Panel2", showOutput("PlotPanel2", 'dimple')))

编辑:

我想我必须在我的 analytics.js 文件中包含一些代码。因此我尝试了几件事,但坦率地说,在不了解 jQuery 的情况下,这是错误的。有人可以帮忙吗?

$( ".selector" ).tabs({
on('option', 'click', function(l) {
ga('send', 'event', 'tabPanel', 'tabPanel', $(l.currentTarget).val());
}
});

谢谢。

最佳答案

如果我正确理解了您需要的输出,您可以这样做(我不使用 javascript):

ui <- fluidPage(

#give an id to your tab in order to monitor it in the server
tabsetPanel(id = 'tab123',
tabPanel("Panel1", textOutput("PlotPanel1")),
tabPanel("Panel2", textOutput("PlotPanel2"))
)

)

server <- function(input, output) {

#now server can monitor the tabPanel through the id.
#make the observer do whatever you want, e.g. print to a file
observeEvent(input$tab123, {
print(input$tab123)

if (input$tab123 == 'Panel1') {
sink(file = 'c:/Users/TB/Documents/panel1.txt', append = TRUE)
cat(1)
sink()
} else {
sink(file = 'c:/Users/TB/Documents/panel2.txt', append = TRUE)
cat(1)
sink()
}

})

}

shinyApp(ui, server)

首先,您为您的tabsetPanel 指定一个id。现在服务器可以访问选项卡数据,您可以使用 observeEvent 创建一个事件来观察。每次用户单击每个选项卡时,print 都会在控制台上打印选项卡名称(这是为了让您查看变量 input$tab123 包含的内容)。然后你可以用这些信息做任何你想做的事。可能将其存储在带有时间戳的数据库中。在我上面的示例中,它在我的文档中创建了两个文件,每次有人单击选项卡时都会写入值 1。然后你只需读入文件并对它们求和。

关于javascript - Shiny 的 tabPanel 和 Google Analytics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28232499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com