0

我的目标是更好地组织 R 代码完成的工作。

特别是,将我编写的 R 代码拆分为不同的 R 文件可能很有用,也许每个 R 文件完成不同的任务。我想到了我们可以在 Matlab 中使用不同的 M 文件做什么,我们可以轻松地直接从主代码调用用不同 M 文件编写的函数。

以函数的形式编写这个 R 文件有用吗?我们如何在主代码中调用这些 R 文件/函数?

谢谢

4

3 回答 3

2

您可以使用 source("filename.R") 将文件包含在主脚本中。

我不确定是否有一个包含整个目录的现成函数,但是使用 list.files() 编写然后为每个文件名动态调用 source 很简单。例如,您还可以过滤文件以仅列出 *.R。

于 2012-12-28T17:33:09.763 回答
0

您的方法可能效果很好。我建议将代码包装在一个函数中,并将一个 R 文件用于一个 R 函数。

查看旨在帮助组织 R 代码的包devtoolsProjectTemplate可能会很有趣。

于 2012-12-28T16:42:48.153 回答
0

除非您打算编写 R 包,否则您应该重新考虑您的组织。R不是Matlab,谢天谢地!您可以将任意数量的功能放入一个文件中,并使用 source foo.r. 如果您正在编写通用函数的集合并且不想构建包,那么这确实是更简洁的方法。
作为一个侧面的想法,考虑通过添加更多输入参数来使您的一些工具更加灵活。您可能会发现您实际上并不需要这么多单独的函数/文件。举个简单的例子,如果你有一些 function do_it_double, anotherdo_it_integer和 another do_it_character,所有这些基本上都做同样的事情,只需将它们合并为一个do_it_all(x,y,datatype='double') 并根据需要覆盖默认数据类型。(我知道这可以通过内部输入验证来完成。我只是举个例子)

于 2012-12-28T22:22:38.390 回答