我来自蟒蛇背景,我正试图赶上R,所以请耐心等待
我有一个R文件 - util.R包含以下行:
util.add <- function(a,b) a + b
util.sub <- function(a,b) { a - b }
Run Code Online (Sandbox Code Playgroud)
我的来源如下:
source('path/util.R')
我现在有两个函数对象,想要编写一个函数,如下所示:
getFilePath(util.add)
这会给我这个结果
[1] "path/util.R"
srcref如果你足够深入,挖掘其中一个加载函数的属性似乎有效...
source("tmp/tmpsrc.R")
str(util.add)
## function (a, b)
## - attr(*, "srcref")=Class 'srcref' atomic [1:8] 1 13 1 31 13 31 1 1
## .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x8fffb18>
srcfile <- attr(attr(util.add,"srcref"),"srcfile")
ls(srcfile)
## [1] "Enc" "filename" "fixedNewlines" "isFile"
## [5] "lines" "parseData" "timestamp" "wd"
srcfile$filename
## [1] "tmp/tmpsrc.R"
Run Code Online (Sandbox Code Playgroud)