我的目标是更好地组织 R 代码完成的工作。
特别是,将我编写的 R 代码拆分为不同的 R 文件可能很有用,也许每个 R 文件完成不同的任务。我想到了我们可以在 Matlab 中使用不同的 M 文件做什么,我们可以轻松地直接从主代码调用用不同 M 文件编写的函数。
以函数的形式编写这个 R 文件有用吗?我们如何在主代码中调用这些 R 文件/函数?
谢谢
您可以使用 source("filename.R") 将文件包含在主脚本中。
我不确定是否有一个包含整个目录的现成函数,但是使用 list.files() 编写然后为每个文件名动态调用 source 很简单。例如,您还可以过滤文件以仅列出 *.R。
您的方法可能效果很好。我建议将代码包装在一个函数中,并将一个 R 文件用于一个 R 函数。
查看旨在帮助组织 R 代码的包devtools和ProjectTemplate可能会很有趣。
除非您打算编写 R 包,否则您应该重新考虑您的组织。R不是Matlab,谢天谢地!您可以将任意数量的功能放入一个文件中,并使用 source foo.r
. 如果您正在编写通用函数的集合并且不想构建包,那么这确实是更简洁的方法。
作为一个侧面的想法,考虑通过添加更多输入参数来使您的一些工具更加灵活。您可能会发现您实际上并不需要这么多单独的函数/文件。举个简单的例子,如果你有一些 function do_it_double
, anotherdo_it_integer
和 another do_it_character
,所有这些基本上都做同样的事情,只需将它们合并为一个do_it_all(x,y,datatype='double')
并根据需要覆盖默认数据类型。(我知道这可以通过内部输入验证来完成。我只是举个例子)