【问题标题】:call an R Script from an other script从其他脚本调用 R 脚本
【发布时间】:2018-04-20 08:22:05
【问题描述】:

我想清理我的 R 代码,因此我想编写几个 RScript 并在那里调用函数,但我不知道该怎么做。

例如,我的主类中有以下调用:

G = function(x) {
    return(-exp(-1i * x) * Conj(H(x+pi)) ) 
}

函数H写在另一个R脚本中如下

H = function(x) {
    return (exp(-1i * x / 2) * cos(x / 2) )
}

两个 RScript 都在同一个项目中,但我的主类无法识别函数 H。

我的错误在哪里?

感谢期待

马蒂亚斯

【问题讨论】:

  • 函数G依赖于函数H。在定义 G 之前是否定义了 H
  • 嗨,代码正在运行,函数 H 是在 G 之前定义的,但是现在我想在另一个 Rscript 中排除函数 H 来清理我的代码,因此它不再被识别。我的问题不是如何访问其他 RScript 中的函数。
  • rm(list=c("H")) 怎么样?这不会从您的环境中删除 H 吗?

标签: r rscript


【解决方案1】:

要从另一个脚本调用 RScript,你需要在开头source它:

source("H.R")
# H is now available
G = function(x) {
     return(-exp(-1i * x) * Conj(H(x+pi)) ) 
}

如果你想清理你的函数,你也可以构建一个包含你所有函数的包。

多一点工作,但绝对值得付出努力!

【讨论】:

  • 您好 Colin FAY,感谢您的回答。我已经创建了一个包,在这个包中是我的 Main 和函数 H。我还添加了 source("H.R") 但我收到消息:“无法打开文件'H.R':没有这样的文件或目录”跨度>
  • 我发现我的错误,我必须添加整个路径。感谢您的帮助。