r - 根据 ui.R 中选定的文件类型更改 server.R 中使用的代码 - Shiny

标签 r csv checkbox input shiny

我正在开发一个 Shiny 的应用程序来寻找数据集的最佳线性回归模型。我希望人们能够输入 .txt、.xls 或 .csv 文件。我的 ui.R 中有此代码:

 fileInput("mydata", label = h4("Please upload the .xls, .txt, or.csv file you would like included in the analysis.")),

 checkboxGroupInput("filetype", label = h4("Please select the type of data uploaded:"), choices = (".csv", ".txt", ".xls"), selected = ".xls"),

 checkboxGroupInput("header", label = h4("Does your table have a header (column names)?"), choices = ("TRUE", "FALSE"), selected = "TRUE"),

我相信这应该允许他们浏览计算机查找文件,上传它,然后告诉我文件类型以及是否有标题。

在我的 server.R 中,我不确定如何告诉我的输出如果有 .txt 或 .xls,则使用一个代码;如果有 .csv,则如何告诉我的输出使用另一个代码。这是我到目前为止所拥有的一切:

  dat <- read.table(input$mydata, header=input$header) #if .xls or .txt
  dat <- read.csv(input$mydata, header=input$header) #if .csv

我环顾四周,但似乎找不到任何例子。有谁知道我可以向我的 server.R 代码添加什么,以便能够根据他们选择的框来区分这一点?

最佳答案

您应该使用单选按钮而不是组复选框,因为前者只允许进行一项选择。例如,组复选框将允许他们说他们的文件既是 .csv 又是 .txt。这也意味着用户可以选择他们的文件有标题和没有标题。

完成更改后,您所需要的只是一个基本的 if/then 语句。类似...

header_var <- FALSE
if (input$header==1) header_var <- TRUE


if (input$filetype==1) {  # input 1 means they picked .csv
    dat <- read.csv(input$mydata, header=header_var)
} 

...然后只需为选择 2 添加一个 else if,为选择 3 添加一个 else。

关于r - 根据 ui.R 中选定的文件类型更改 server.R 中使用的代码 - Shiny,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33738077/

相关文章:

arrays - Powershell - 将 CSV 文件加载到多维数组中

java - 复选框监听器

r - 简化此网格,使每行和每列都有 1 个值

r - 在 ddply 汇总之前从数据帧中选择范围(时间戳)

LINQ 返回字符串 [] 值与逗号分隔字符串字段匹配的记录

javascript - 如果音频停止,如何取消选中复选框?

android - 如何在android中存储多个复选框值?

r - 在 R 中,是否可以在不退出的情况下保存当前工作区?

python - 从 Python 或 R 中的大数据集中获取高度相关对的有效方法

c++ - 使用 C++ 创建包含今天日期的文件夹