如何读取 csv 文件并渲染 UI?

How to read csv file and render UI?

我有一个简单的闪亮应用程序,当我按下按钮时,一个 .csv 文件会保存在文件 app.R 所在的目录中。 我希望能够读取此 csv 文件并在我闪亮的应用程序上以 table 呈现信息。

这是一个关于我想要做什么的类似示例

df <- data.frame(no =c(1:3),money=c(9999:10001),penalty=c(999:1001))


ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      fileInput("file1", "Choose CSV File",
                accept = c(
                  "text/csv",
                  "text/comma-separated-values,text/plain",
                  ".csv")
      ),
      tags$hr(),
      checkboxInput("header", "Header", TRUE),actionButton("sort","Do Sorting")
    ),
    mainPanel(
      tableOutput("contents"),tableOutput("sortedcontents")
    )
  )
)

server <- function(input, output) {
  
  rawInputData = reactive({
    rawData = input$file1
    
    
    if(!is.null(rawData)) {
      data = read.csv(rawData$datapath);
    } else {
      return(NULL);
    }
    
  });
  
  
  output$contents <- renderTable({
    newData = rawInputData()  
    if(is.null(newData))
      return();
    newData;
  })
  
  sorting = reactive({
    if(input$sort){
      newData = rawInputData()
      newData$moneysort <- ifelse(newData$money >=10000, 1, 0)
      newData$penaltysort <- ifelse(newData$penalty >=1000, 1, 0)
    }
    newData
    
  })
  output$sortedcontents <- renderTable({
    newData = sorting()  
    if(is.null(newData))
      return();
    newData;
  })
  
}


}
shinyApp(ui, server)

为了有机会选择带有 fileInpunt() 的文件,我想避免此步骤并自动检查特定目录以查找名为“myData.csv”的 csv 并将此 csv 呈现在table.

这里是一个只从本地目录读取数据并在 shiny 中渲染的例子。


library(shiny)

write.csv(iris, 'iris.csv')
df = read.csv('iris.csv')

shinyApp(
  ui = fluidPage(
    fluidRow(
      column(12,
             tableOutput('iris_table')
      )
    )
  ),
  server = function(input, output) {
    output$iris_table <- renderTable(df)
  }
)
  

此示例使用了 this shiny TableOutput reference 的细微修改。