r-如何将输入的表存储为闪亮的

  • 本文关键字:存储 r shiny user-input
  • 更新时间 :
  • 英文 :


我有这个闪亮的应用程序。主要目的是上传带有数据的excel表格,并在选项卡中绘制一些图表。用户可以选择一张图纸来制作图形。seet将进行渲染以观察选定的数据。这很有效。

但我很难用输入数据来制作图表。

我试着使用反应值命名的数据,然后根据它绘制图表。我对闪亮的应用程序很陌生。

库(闪亮(库(readxl(库(dplyr(图书馆图书馆

ui <- fluidPage(
titlePanel("OTD project update"),
sidebarPanel(
fileInput('file1', 'Insert File', accept = c(".xlsx")),
textInput('file1sheet','Name of Sheet (Case-Sensitive)')),
mainPanel(tabsetPanel(
type = "tabs",
tabPanel("Data", tableOutput("value")),
tabPanel("OTD", plotOutput("OTD"))        
)   
)
)
server <- function(input, output) {

sheets_name <- reactive({
if (!is.null(input$file1)) {
return(excel_sheets(path = input$file1$datapath))  
} else {
return(NULL)
}
})

output$value <- renderTable({
if (!is.null(input$file1) && 
(input$file1sheet %in% sheets_name())) {
return(read_excel(input$file1$datapath, 
sheet = input$file1sheet))
} else {
return(NULL)
}
})


data <- reactive({
if (!is.null(input$file1) && 
(input$file1sheet %in% sheets_name())) {
return(read_excel(input$datapath, 
sheet = input$file1sheet))
} else {
return(NULL)
}
})


}
shinyApp(ui, server)

最好使用单选按钮中的工作表名称来选择,而不是键入它。此外,还有一个拼写错误。试试这个

library(shiny) 
library(readxl) 
library(dplyr) 
library(tidyverse) 
library(lubridate)
library(DT)
ui <- fluidPage(
titlePanel("OTD project update"),
sidebarPanel(
fileInput('file1', 'Insert File', accept = c(".xlsx")),
#textInput('file1sheet','Name of Sheet (Case-Sensitive)')
uiOutput("sheet")
),
mainPanel(tabsetPanel(
type = "tabs",
tabPanel("Data", DTOutput("table")),
tabPanel("OTD", plotOutput("plot"))      
)   
)
)
server <- function(input, output) {

sheets_name <- reactive({
if (!is.null(input$file1)) {
return(excel_sheets(path = input$file1$datapath))  
} else {
return(NULL)
}
})
data <- reactive({
req(sheets_name())
if (!is.null(input$file1)) {
return(read_excel(input$file1$datapath, sheet = input$mysheet))
} else {
return(NULL)
}
})

output$sheet <- renderUI({
req(sheets_name())
radioButtons("mysheet", "Select a Sheet", choices = sheets_name())
})

output$table <- renderDT(data())
output$plot <- renderPlot({plot(cars)})

}
shinyApp(ui, server)

相关内容

  • 没有找到相关文章

最新更新