我想在一个包命名空间中推送一个函数,以便它可以访问该包的内部对象(让我们使用stats包作为例子).我试过用了
myfun <- function(x) print(x)
env = loadNamespace("stats")
assign("myfun", myfun , env)
Run Code Online (Sandbox Code Playgroud)
但它被锁定了.所以我试图解锁我的对象
unlockBinding("myfun", env)
Run Code Online (Sandbox Code Playgroud)
由于myfun尚不存在,我无法解锁.
有帮助吗?
假设我正在调用函数PackageFuncA,它存在于第三方包(即来自CRAN的库)中.PackageFuncA依次在同一个第三方包中调用PackageFuncB.有没有办法调用PackageFuncA,这样当它调用PackageFuncB时,它实际上会调用我自己的PackageFuncB?换句话说,我可以拦截对PackageFuncB的调用吗?
我认为解决方案涉及创建我自己的PackageFuncB函数,然后在相同的环境而不是PackageFuncA的环境中调用PackageFuncA,但我无法使用do.call或eval.
我试图通过首先定义一个函数来修改和重新定义R包xcms中的函数(xcmsRaw)
my.xcmsRaw <- function(filename, profstep = 1, profmethod = "bin",
profparam = list(mzcorrf=1), # PATCH - mzcorrf is the m/z correction factor, e.g. 0.99888 for long-chain hydrocarbons
includeMSn = FALSE, mslevel=NULL,
scanrange=NULL) { ... }
Run Code Online (Sandbox Code Playgroud)
然后输入
unlockBinding("xcmsRaw", as.environment("package:xcms"))
assign("xcmsRaw", my.xcmsRaw, as.environment("package:xcms"))
lockBinding("xcmsRaw", as.environment("package:xcms"))
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,它给了我错误
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'profBinM' of mode 'function' was not found
Run Code Online (Sandbox Code Playgroud)
由于它没有找到profBinM函数,这是一个在xcms包的文件xcms.c中定义的C代码函数.
有关如何解决此问题的任何想法?(我在Windows 7下工作,使用R版本3.0.0)
我目前正在用 stargazer 准备一个回归结果表。在此,我还想展示 t 统计量。为此,我使用以下简化规范,如http://jakeruss.com/cheatsheets/stargazer.html#report-t-statistics-or-p-values-instead-of-standard-errors 中所示
stargazer(output, output2, type = "html",
report = "vc*t")
Run Code Online (Sandbox Code Playgroud)
结果表报告 t 统计量如下:
0.088
t = 5.822***
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:每个模型和每个系数都重复“t =”。这在某种程度上是多余的,并降低了表格的可读性。
有没有办法只报告没有“t =”标签的 t-statistic 的值?只在括号中显示值会很棒。
谢谢!