在R的Quarto中引用其他位置文件失败,求正确实现方法
解决Quarto文件中source上级目录R脚本的问题
你的核心问题是路径匹配错误,加上R对大小写敏感、函数名写错等细节问题,以下是可行的解决方案:
方法1:使用正确的相对路径(推荐)
从level2folder2目录往上退一级(回到root),再进入level2folder,正确的代码是:
source("../level2folder/level2.r")
注意:
- R的文件路径严格区分大小写,必须和实际文件夹/文件名完全一致(你的实际是小写的
level2folder和level2.r,之前的大写写法会导致找不到文件) ../表示当前目录的上一级目录,这是相对路径的关键
方法2:使用绝对路径
如果相对路径仍有问题,可以直接写目标文件的绝对路径,示例:
- Windows系统:
source("C:/root/level2folder/level2.r")
- Mac/Linux系统:
source("/Users/你的用户名/root/level2folder/level2.r")
方法3:自动构造鲁棒路径(避免手动写路径出错)
用R内置函数获取当前Quarto文件的位置,自动生成目标路径:
# 获取当前Quarto文件所在目录 current_dir <- dirname(rstudioapi::getSourceEditorContext()$path) # 拼接目标文件路径 target_script <- file.path(current_dir, "../level2folder/level2.r") # 加载脚本 source(target_script)
你之前尝试失败的原因:
source("level2folder/level2.r"):该路径是从level2folder2目录找同级的level2folder,但实际level2folder在root目录,并非同级,所以找不到Source("~/Level2Folder/Level2.r"):R的函数是小写的source(),不是大写的Source();且大小写和实际文件/文件夹名不符,~/指向用户主目录,不一定是你的root目录位置Source("./ level2Folder/Level2.r"):函数名大写错误;路径中./后多了空格;大小写不符;且./是当前目录(level2folder2),里面不存在level2Folder
内容的提问来源于stack exchange,提问作者dbcoffee
相关产品推荐
相关产品推荐

