【发布时间】:2022-01-05 13:49:53
【问题描述】:
由于我的项目包含许多只包含函数定义的不同文件(然后我在主工作流文件中source()),我经常会忘记确切的函数包含在哪个文件中。
如果我可以使用我的源文件(如具有如下语法的包),这将不是问题:source("file.r")::function()。当然,该代码会返回错误 (Error: unexpected '::' in "source("file.r")::"),但我希望有一个等效的运算符可以用于源文件。
【问题讨论】:
-
看看box 包及其模块 - 对于大型项目来说,工作流程非常简洁。
-
这不是您问题的答案,但我强烈推荐个人 R 包。如果您需要设置个人 R 包,您可以尝试 {personalr}。 mrcaseb.github.io/personalr(注:我是那个包的维护者)
-
一个缺点是,如果您将函数重新排列到不同的文件中,则必须修改函数调用。无论如何,一些可能性是(1)导入包是另一个处理这个的包。 (2) 只需在 Windows 上为自己创建一个表格
grep function *.R或findstr function *.R或 (3) 在每个函数中添加注释,指明它所在的文件。然后只需列出函数的源即可查找。如果您移动函数,则需要修改源,但不需要修改调用。
标签: r function scope namespaces