Dar*_*ook 7 r compiler-warnings
在PHP中,我们可以做error_reporting(E_ALL)或error_reporting(E_ALL|E_STRICT)有关于可疑代码的警告.在g ++中,您可以提供-Wall(和其他标志)以获得更多的代码检查.R中有类似的吗?
作为一个具体的例子,我在一些函数中重构了一段代码.在其中一个函数中,我有这一行:
if(nm %in% fields$non_numeric)...
Run Code Online (Sandbox Code Playgroud)
很久以后我意识到我忽略了添加fields参数列表,但是R没有抱怨未定义的变量.
总而言之,确实没有正确的答案:正如 Owen 和 gsk3 指出的那样,如果变量不在本地范围内,R 函数将使用全局变量。在某些情况下这可能是可取的,那么如何指出“错误”呢?
checkUsage() 不做任何 R 内置错误检查不做的事情(在本例中)。checkUsageEnv(.GlobalEnv) 是检查辅助函数文件的有用方法(并且可能非常适合作为 svn 或 git 的预挂钩;或者作为自动构建过程的一部分)。
我认为重构时最好的解决方案是:一开始将所有全局代码移动到一个函数(例如调用它main()),然后唯一的全局代码就是调用该函数。先这样做,然后开始提取函数等。