【问题标题】:r shiny using basename() to get the file namer shiny 使用 basename() 获取文件名
【发布时间】:2016-08-09 23:16:21
【问题描述】:

我正在构建一个网络应用程序,供用户每月上传文件并将数据存储在 PostgreSQL 中;我想从上传的文件名中指定并提取月份;类似于“Utilization_summary_201511.csv”。

但是,我在获取文件名时遇到了麻烦,我尝试了以下两种方法,但都徒劳无功。在服务器中。R

1.使用 read.csv

  filename<-renderText({
     inFile <- input$file1

      if (is.null(inFile))
        return(NULL)
     file<-read.csv(inFile$datapath, header=TRUE ,sep=",") 
     name<-basename(file)
     name
 })

2。结合 file.choose() 和 read.csv

   filename<-renderText({

     inFile <- input$file1
     if (is.null(inFile))
       return(NULL)

     filename<-file.choose()
     data <- read.csv(filename, header=TRUE ,sep=",", skip=1)
     name<-basename(filename)
     name 
   })

在 ui.R 中:

 textOutput("filename")

这应该不是那么难,而且我已经尝试了几天的解决方案,在此先感谢您的任何想法和建议。

【问题讨论】:

  • 在第一种情况下,file 是一个数据集对象。您需要从字符串中提取基本名称。第二种情况,filnamefilename是不同的
  • 感谢@akrun,我已经修改了第二个案例的错字并重新运行,但仍然无法正常工作;对于案例1,您能解释一下吗?谢谢。

标签: r csv shiny


【解决方案1】:

您可能想尝试使用 inFile$name,而不是 inFile$datapath。根据闪亮的fileInput documentation

名称 网络浏览器提供的文件名。

数据路径 包含已上传数据的临时文件的路径。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-29
    • 2014-09-15
    • 2021-10-26
    • 2017-11-30
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多