编写一个 R 语言的代码检查程序

15

当我用Python编程时,我发现使用pylint非常有用。然而,当我用R编程时,没有类似的工具。

作为一个小的副业项目,我想尝试编写一个小的LINT程序。并不需要太复杂,可以考虑以下几点:

  • 确保函数名为驼峰命名法
  • 函数平均长度
  • 检测未使用的变量
  • 空格。例如,function(x=1, y=2)应该是 function(x=1,y=2)

但是,我不确定如何开始(我已经开始查看了pylint的源代码)。

我应该如何开始?是否有标准的编程技术适用于这种类型的项目?有哪些好的资源可以考虑?

我想在R中编写整个项目。


你在这个项目上有任何进展了吗? - fmark
@fmark 我花了一周左右的时间拆解 codetools 包。我学到了很多,但没有取得任何重大进展。希望今年夏天能有所突破...... - csgillespie
祝你好运!我没有时间提供贡献,但很想有一个rlint工具在手边! - fmark
4个回答

12

lintr是一个R包,可以对代码进行风格和可能的语义错误的代码检查。它在codetools的基础上使用了额外的linting功能。

它还与Emacs、Vim、Sublime Text和RStudio集成。


12

请查看附带在R中的codetools包。有关该包的一些详细信息可在CRAN页面上找到。例如,在进行R CMD check时,运行该包中的代码可以捕获未使用的变量等。这可能会为您启动rlint的此方面提供帮助。

为了回答其他方面...我建议开始编写执行一项任务的简单函数,例如将函数名称转换为驼峰式写法。当您积累了一系列小函数的体系后,可以将它们合并成一个工作的lint包装器函数,同时允许用户/开发人员在没有完整的lint行为时调用特定的函数。


谢谢。我刚刚查看了源代码,似乎已经完成了很多工作。 - csgillespie
@csgillespie 欢迎。对于未使用的变量位以及其他一些内容是可以的,但camelCase或间距不行,因为这些属于风格问题。 - Gavin Simpson

8

1
此软件包已经根据作者/维护者的要求从CRAN中删除。 - mjv

5

"R CMD check" 这个程序可能会有所帮助。 它的其中一个功能是查找看起来未初始化就被使用的变量,这通常是拼写错误。该检查程序的代码可能对您有所帮助。

我认为这不是一项小任务!


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