You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R Markdown使用knit with parameters时如何获取所选原文件名称

问题原因

使用RStudio「knit with parameters」的file类型参数时,Shiny上传组件会将用户选中的文件复制到系统临时目录生成临时文件,params$workbook默认返回的是该临时文件的路径,因此直接使用basename(params$workbook)只能拿到临时文件名。用户选择的原始文件名会以name属性的形式附加在params$workbook对象上。

解决方法

最简方案

直接在正文需要展示数据源文件名的位置插入以下代码即可:

`r attr(params$workbook, "name")`

兼容默认参数的优化方案

如果需要覆盖「未手动选择文件、直接使用YAML中默认的current.xlsx参数编织」的场景,可在文档开头的setup代码块中加入以下自定义函数:

get_source_filename <- function() {
  # 优先取手动上传的原始文件名
  original_name <- attr(params$workbook, "name")
  # 无原始文件名时取默认参数的文件名
  if (is.null(original_name)) {
    return(basename(params$workbook))
  }
  return(original_name)
}

后续在正文中调用函数即可:

`r get_source_filename()`

内容的提问来源于stack exchange,提问作者Charles Knell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:15:04