如何在F1的Rmd文件中调用F2里R脚本的fn_1函数?
在Rmd中跨文件夹调用带参数的R函数
完全可以实现你的需求,你给出的示例代码思路是正确的,只要路径配置无误,就能在Rmd的代码块中传入不同参数调用目标函数并获取输出。
具体操作逻辑如下:
- 用
source('../F2/R_1.R')加载F2文件夹里的R脚本:因为你的Rmd在F1目录下,../表示回到上级目录F,再进入F2找到R_1.R文件,这样就能把脚本里定义的fn_1函数加载到当前R会话中。 - 定义任意符合函数要求的参数,直接调用
fn_1()即可执行函数并得到结果,还能把结果赋值给变量保存下来。
比如你可以灵活传入不同参数多次调用:
# 加载外部R脚本 source('../F2/R_1.R') # 第一组参数调用函数 x1 <- c(1,3,5,7) w1 <- c(0.2,0.3,0.25,0.25) result1 <- fn_1(x1, w1) print(result1) # 第二组参数调用函数 x2 <- seq(10, 100, by=10) w2 <- rep(1, 10) result2 <- fn_1(x2, w2) print(result2)
需要注意的细节:
- 确认相对路径正确:如果运行时提示找不到文件,可以在Rmd代码块里执行
getwd()查看当前工作目录,核对路径是否和预期一致。 - 确保R_1.R中的
fn_1函数定义没有语法错误,否则加载脚本时会触发报错。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

