0

R中有没有办法将脚本中定义的某些变量的值(例如字符串)传递给另一个正在获取的脚本,以便后者可以使用它们而无需声明它们?例如:

some R code
...
...
var1 <- "some string"
var2 <- "some param"

source("header.r")

header.ra内list()有带有 var1 和 var2 中字符串名称的槽:

tabl <- alldata.list[["some string"]][["some param"]] 

这样当我运行原始脚本并调用标头时,tabl会正确处理吗?

此外,可以传递的元素的数量和类型是否有限制?

4

1 回答 1

3

当您使用source加载.R文件时,这会按顺序运行该脚本中的行,将该脚本中的所有内容合并到您正在运行的 R 会话中。从那一刻起,所有变量和函数都可用。

为了使您的代码更具可读性/可维护性/可调试性,尽管我建议不要使用变量在源文件之间进行通信。相反,我会使用函数。实际上对我来说,这意味着我有一个或多个包含辅助函数的文件(有点像包灯)。这些辅助函数抽象出您在主脚本中需要的一些功能,使其更短、更切题。目标是创建一个大致填满屏幕的主脚本。通过这种方式,您可以轻松掌握脚本的主要思想,任何细节都可以在辅助函数中找到。

使用函数使主脚本自包含,而不依赖于其他源文件中的可执行代码中发生的事情。这需要您自己和其他人进行较少的推理来确定脚本到底在做什么,因为您基本上只需要阅读 40-50 行代码。

于 2013-05-20T19:00:51.753 回答