【问题标题】:How to read csv file and render UI?如何读取 csv 文件并渲染 UI?
【发布时间】:2020-10-03 17:20:30
【问题描述】:

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

这是我想做的一个类似的例子

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 呈现在表中。

【问题讨论】:

  • 看看How to Ask - 在这里获得帮助的最佳方式是发布示例数据和预期输出,以及对您的问题的解释。如果没有具体示例,您给出的描述有点难以理解。如果可能,请发布minimal reproducible example
  • 只需读取一个 csv 文件 df &lt;- read.csv('filename.csv') 并在 renderTable() 中呈现它。

标签: r shiny reactive


【解决方案1】:

这是一个仅从本地目录读取数据并以闪亮呈现的示例。


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的轻微修改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2021-09-13
    • 2019-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多