从函数中可靠地提取srclines和srcfile
我需要提取被解析为创建R函数的源代码的精确行,以用于覆盖率分析从函数中可靠地提取srclines和srcfile,r,function,R,Function,我需要提取被解析为创建R函数的源代码的精确行,以用于覆盖率分析deparse不够准确,因为在使用packagecovr进行覆盖率分析时,准确的行号很重要 如果有src文件,我只需要文件名。如果没有,例如,函数是在控制台中创建的,我需要创建一个等效的临时文件,该文件可能是该函数的源文件 我看到了几个从函数中提取src信息的函数,如getsrcFilename或getSrcref,但没有一个函数专门用于获取源代码 getSrclines看起来很有希望,但没有将函数作为参数。我试图使用attribut
deparse
不够准确,因为在使用packagecovr进行覆盖率分析时,准确的行号很重要
如果有src文件,我只需要文件名。如果没有,例如,函数是在控制台中创建的,我需要创建一个等效的临时文件,该文件可能是该函数的源文件
我看到了几个从函数中提取src信息的函数,如getsrcFilename
或getSrcref
,但没有一个函数专门用于获取源代码
getSrclines
看起来很有希望,但没有将函数作为参数。我试图使用attributes
来访问srcref
并以这种方式获取信息,但它的存储似乎并不一致——显然我遗漏了一些东西
有时
attributes(body(cover.fun))$srcfile
可以工作,有时这个attributes(attributes(cover.fun)$srcref)$srcfile也可以工作,在srcref
本身中,我在srcfile$lines
或srcfile$original$lines
中找到了源代码,当然这些看起来就像实验,不是实现这一点的正确方法
我需要一些能够处理在包中创建的函数的东西,包括source
或交互方式。如果文件名可用,这就是我所需要的,否则我需要源代码行。谢谢那么这真的是关于covr
的问题吗?还是你只是想看看?为什么deparse()
不够准确?这将有助于给出更具体的例子。不,covr只是说这来自于一个真实的应用程序,而不是一些愚蠢的好奇心deparse
不保留换行符。