我有兩個閃亮的應用程序,我想鏈接到另一個。其中一個數據表具有一些我想鏈接到另一個應用程序的值,我可以從selectInput
選項中選擇該值。R閃亮的應用程序之間建立鏈接
概括起來我有一個應用程序,看起來像這樣(從here拍攝):
library(shiny)
library(DT)
server <- function(input, output) {
output$iris_type <- DT::renderDataTable({
datatable(data.frame(Species=paste0("<a href='#filtered_data'>", unique(iris$Species), "</a>")),
escape = FALSE,
callback = JS(
'table.on("click.dt", "tr", function() {
tabs = $(".tabbable .nav.nav-tabs li a");
$(tabs[1]).click();})'))
})
output$filtered_data <- DT::renderDataTable({
selected <- input$iris_type_rows_selected
if(is.null(selected)){
datatable(iris)
} else {
datatable(iris[iris$Species %in% unique(iris$Species)[selected], ])
}
})
}
ui <- shinyUI(fluidPage(
mainPanel(
tabsetPanel(
tabPanel("Iris Type", DT::dataTableOutput("iris_type")),
tabPanel("Filtered Data", DT::dataTableOutput("filtered_data"))
)
)
))
shinyApp(ui = ui, server = server)
而另一個問題:
library(shiny)
library(dplyr)
library(tidyr)
data(iris)
server <- shinyServer(function(input, output) {
iris1 <- reactive({
iris %>%
filter(Species %in% input$select)
})
output$filtered_data <- DT::renderDataTable({
datatable(iris1())
})
})
ui <- shinyUI(fluidPage(
mainPanel(
selectInput("select", label=h3("Iris Type"), choices=list('setosa', 'versicolor', 'virginica'),
selected='setosa', multiple=FALSE),
DT::dataTableOutput("filtered_data")
)
))
shinyApp(ui = ui, server = server)
(我知道這是一個愚蠢的例子,但它顯示了我想要什麼)
當我點擊第一個應用程序中的物種之一,我想它鏈接到第二個應用程序而不是o f選擇另一個選項卡,然後從第一個應用程序中選擇已點擊的物種(請參閱下圖)。
我想我必須將鏈接從"<a href='#filtered_data'>", unique(iris$Species), "</a>"
更改爲另一個應用的鏈接,但我不知道如何在第二個應用中更改我的selectInput
選項的值。請幫忙。
http://stackoverflow.com/questions/25297489/accept-http-request-in-r-shiny-application這似乎非常接近你在做什麼。 – Shape
也許它很接近,但我不知道如何使用鏈接中的答案來解決我的問題。 – potockan