如何在 R 中呈现本地数据集闪亮

问题描述

我有以下显示 CSV 结果的 R Shiny 代码。目前,它仅适用于 R 的认数据集。对于本地计算机上的数据集,我希望以相同的方式显示 CSV 结果。

示例 CSV:Study1.csv、Study2.csv、Study3.csv

有人能解释一下如何在 R Shiny 中实现这一点吗?

ui <- fluidPage(
  
  # App title ----
  titlePanel("Downloading Data"),# Sidebar layout with input and output deFinitions ----
  sidebarLayout(
    
    # Sidebar panel for inputs ----
    sidebarPanel(
      
      # Input: Choose dataset ----
      selectInput("dataset","Choose a dataset:",choices = c("rock","pressure","cars")),# Button
      downloadButton("downloadData","Download")
      
    ),# Main panel for displaying outputs ----
    mainPanel(
      
      tableOutput("table")
      
    )
    
  )
)

server <- function(input,output) {
  
  # Reactive value for selected dataset ----
  datasetInput <- reactive({
    switch(input$dataset,"rock" = rock,"pressure" = pressure,"cars" = cars)
  })
  
  # Table of selected dataset ----
  output$table <- renderTable({
    datasetinput()
  })
  
  # Downloadable csv of selected dataset ----
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$dataset,".csv",sep = "")
    },content = function(file) {
      write.csv(datasetinput(),file,row.names = FALSE)
    }
  )
  
}

shinyApp(ui,server)

解决方法

我添加了一个数据集:

dataset1 <- structure(list(This = c(1L,7L,3L),is_the = c(5L,8L,2L),header = c(9L,5L,4L)),class = "data.frame",row.names = c(NA,-3L))

您还可以通过

读取 csv 并将其用作数据集 1
dataset1 <- read.csv("your path",sep="your seperator")

带有添加数据集的 UI:

dataset1 <- structure(list(This = c(1L,-3L))
ui <- fluidPage(
              
              # App title ----
              titlePanel("Downloading Data"),# Sidebar layout with input and output definitions ----
              sidebarLayout(
                        
                        # Sidebar panel for inputs ----
                        sidebarPanel(
                                  
                                  # Input: Choose dataset ----
                                  selectInput("dataset","Choose a dataset:",choices = c("rock","pressure","cars","dataset1")),# Button
                                  downloadButton("downloadData","Download")
                                  
                        ),# Main panel for displaying outputs ----
                        mainPanel(
                                  
                                  tableOutput("table")
                                  
                        )
                        
              )
    )

您的服务器添加了数据集1

server <- function(input,output) {
          
          # Reactive value for selected dataset ----
          datasetInput <- reactive({
                    switch(input$dataset,"rock" = rock,"pressure" = pressure,"cars" = cars,"dataset1" = dataset1)
          })
          
          # Table of selected dataset ----
          output$table <- renderTable({
                    datasetInput()
          })
          
          # Downloadable csv of selected dataset ----
          output$downloadData <- downloadHandler(
                    filename = function() {
                              paste(input$dataset,".csv",sep = "")
                    },content = function(file) {
                              write.csv(datasetInput(),file,row.names = FALSE)
                    }
          )
          
}

shinyApp(ui,server)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...