为啥必须创建一个中间对象来引用 R 中的 xlsx 文件?
Posted
技术标签:
【中文标题】为啥必须创建一个中间对象来引用 R 中的 xlsx 文件?【英文标题】:Why must a create an intermediary object to reference an xlsx file in R?为什么必须创建一个中间对象来引用 R 中的 xlsx 文件? 【发布时间】:2022-01-19 12:44:17 【问题描述】:为什么下面代码中的inFile1 <- input$file1
是代码工作所必需的?
为什么我不能直接在read_excel(inFile1$datapath, 1)
中引用数据路径?
ui <- fluidPage(
fileInput('file1', 'Upload Data',accept = c(".xlsx")
)
server <- function(input, output)
output$outcome <- renderDataTable(
inFile1 <- input$file1
read_excel(inFile1$datapath, 1)
)
【问题讨论】:
你可以做read_excel(input$file1$datapath, 1)
。
【参考方案1】:
起初这让我觉得很奇怪,但fileInput
提供了其他有用的信息,除了在哪里读取临时副本(数据路径)。来自文档:
name Web 浏览器提供的文件名。这不是获取上传的实际数据的读取路径(请参阅数据路径 列)。
size上传数据的大小,以字节为单位。
type 浏览器报告的 MIME 类型(例如 text/plain),如果浏览器不知道,则为空字符串。
datapath 包含已上传数据的临时文件的路径。如果用户执行另一次上传,此文件可能会被删除 操作。
应用程序在文件中的有用信息。
正如@stefan 指出的那样,单行代码input$file1$datapath
就是直接访问该data.frame 项。
【讨论】:
以上是关于为啥必须创建一个中间对象来引用 R 中的 xlsx 文件?的主要内容,如果未能解决你的问题,请参考以下文章