R 在一个闪亮的应用程序中同时显示多个datatable行范围
我有一个简单闪亮的应用程序R 在一个闪亮的应用程序中同时显示多个datatable行范围,r,shiny,dt,R,Shiny,Dt,我有一个简单闪亮的应用程序 #ui.r navbarPage( "Application", tabPanel("General", sidebarLayout( sidebarPanel( uiOutput("book4"), uiOutput("book5"), uiOutput("book6"), uiOutput
#ui.r
navbarPage(
"Application",
tabPanel("General",
sidebarLayout(
sidebarPanel(
uiOutput("book4"),
uiOutput("book5"),
uiOutput("book6"),
uiOutput("book7")
),
mainPanel(
DT::dataTableOutput("hot5")
)
)))
#server.r
library(shiny)
library(DT)
library(tidyverse)
server <- function(input, output,session) {
output$book4<-renderUI({
numericInput("bk4", "From",
value = 1,
min=1,max=input$bk5)
})
output$book5<-renderUI({
numericInput("bk5", "To",
value = 1,
min=1,max=10)
})
output$book6<-renderUI({
numericInput("bk6", "From",
value = 1,
min=1,max=10)
})
output$book7<-renderUI({
numericInput("bk7", "To",
value = 1,
min=1,max=10)
})
rt2<-reactive({
DF=data.frame(
Id= (input$bk4:input$bk5),
Label=paste("Item",input$bk4:input$bk5),
Pf=as.integer(rep.int(0,as.numeric(input$bk5-input$bk4+1))),
stringsAsFactors = FALSE
)
})
output$hot5 <-DT::renderDataTable(
rt2()%>%
rowid_to_column("Row") %>%
mutate(Row = ""),
rownames = FALSE,
extensions = "Select",
options = list(
columnDefs = list(list(className = "select-checkbox", targets = 0, orderable = FALSE)),
select = list(style = "multi", selector = "td:first-child")
)
)
}
#ui.r
导航栏页(
“应用程序”,
选项卡面板(“一般”,
侧边栏布局(
侧栏面板(
uiOutput(“book4”),
uiOutput(“第5册”),
uiOutput(“第6册”),
uiOutput(“book7”)
),
主面板(
DT::dataTableOutput(“hot5”)
)
)))
#服务器.r
图书馆(闪亮)
图书馆(DT)
图书馆(tidyverse)
服务器为什么不将它们合并到一个数据帧中,如下所示:
rt2<-reactive({
DF=data.frame(
Id= unique(c(input$bk4:input$bk5,input$bk6:input$bk7)),
Label=paste("Item",unique(c(input$bk4:input$bk5,input$bk6:input$bk7))),
Pf=as.integer(rep.int(0,length(unique(c(input$bk4:input$bk5,input$bk6:input$bk7))))),
stringsAsFactors = FALSE
)
})
rt2您的示例当前不可复制;格式有点错误,我们无法访问您的数据。如果您提供了一个可复制的示例,将更容易提供帮助,有关如何执行此操作的一些提示,请参阅。抱歉,但它如何不可复制?我在我的服务器内创建了数据框。r文件对不起,我的坏!我忽略了这一点,这也是我一直在努力的。对不起,我的错误,我添加了一个编辑,它解释了这两个范围不应该采用公共值。因为它们会显示两次。