在R中处理个人函数的最佳实践方法

5

我已经在R中编写了个人函数,这些函数不特定于一个或几个项目。

R中放置这些类型的函数的最佳实践是什么?

是否最好的方法是有一个文件在启动时被源化?或者有更好(推荐)的方法来处理这种情况吗?


6
将它们打包并记录文档。 - Ista
使用 .Rprofile 文件来实现此目的,它会在启动时被调用。 - Matt Weller
4
有些人想关闭这个问题,认为它太依赖个人观点。我认为这是一个足够好的问题,应该保持开放状态。 - David J.
4个回答

4
创建一个名为“utilities”的包,在该包中放置实用功能,并尽量每个文件只放置一个函数,将该包存储在源代码控制系统(例如GIT、SVN)中。这将帮助您长期节省时间。
附注:.Rprofile倾向于被意外删除。

3
这是最佳解决方案。但不要称其为“实用工具”,要稍作个性化处理,这样当您分享它时,人们就会知道它是从哪里来的。 - Gregor Thomas
谢谢,我想这是我要走的路线。 - Chris Watson

3
如果你有很多函数,最好将它们制作成一个包,并在每次开始工作时加载。不要将所有函数都放在一个脚本中,因为这样不太好。相反,将文件分解成几个文件,每个文件只包含一个函数(我的首选)或一组逻辑相关的函数。这将使你在需要进行更改时更容易找到所需的函数。

2

2
这也意味着,除非其他人加载所需的库,否则您的脚本将无法为他人工作... - Ista
是的,没错。从某种意义上说,你可以认为将代码放在.Rprofile文件中是形式和严谨性的极端,而编写一个包并将其放在CRAN上则是另一种极端。我两种方法都尝试过,并认为它们都有不同的用途。根据OP的问题,我认为.Rprofile是一个很好的起点。 - Ari
一个软件包并不一定要放到 CRAN 上。 - mnel
这是一个很好的观点。我创建的唯一软件包是为在CRAN上分发。你经常为个人使用而创建软件包吗? - Ari
@Ari RStudio让创建另一个软件包变得非常容易。Devtools使加载非CRAN软件包变得容易(load_all用于本地文件,install_github用于Github文件)。taRifxtaRifx.geo基本上是我为自己的一次性使用编写的函数的积累。 - Ari B. Friedman

0

从我的经验来看,对于个人函数而言,包是最好的选择。首先,我将所有新的函数放入一个个人包中,我称之为My。当我发现一些函数相似且值得成为独立包时,我会创建一个新的包并将它们移动到那里。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接