- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在很多 R 包的 .First.lib 函数中看到以下习惯用法:
fullName <- paste("package", pkgname, sep=":")
myEnv <- as.environment(match(fullName, search()))
barepackage <- sub("([^-]+)_.*", "\\1", pkgname)
dbbase <- file.path(libname, pkgname, "R", barepackage)
rm(.First.lib, envir = myEnv)
lazyLoad(dbbase, myEnv)
if(exists(".First.lib", envir = myEnv, inherits = FALSE)) {
f <- get(".First.lib", envir = myEnv, inherits = FALSE)
if(is.function(f))
f(libname, pkgname)
else
stop(gettextf("package '%s' has a non-function '.First.lib'",
pkgname),
domain = NA)
}
我知道 .First.lib 函数在加载包时运行。
我知道上面的代码定义了包的环境并设置了路径,但我不明白为什么它在显式删除 .First.lib 函数后还要寻找 .First.lib 函数。是什么让上述习语如此普遍?将其包含在 R 包中是“最佳实践”吗?
最佳答案
这种成语已经很古老了。包应该有命名空间并使用 .onLoad、.onUnload 和 .onAttach。例如:
.onLoad <- function(libname, pkgname){
# do whatever needs to be done when the package is loaded
# some people use it to bombard users with
# messages using
packageStartupMessage( "my package is so cool" )
packageStartupMessage( "so I will print these lines each time you load it")
}
最好通过将其添加到描述文件来避免调用lazyLoad函数的全部事务:
LazyLoad: true
关于r - R 包中的 .First.lib 习惯用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4369334/
我编写的代码主要供个人使用,但我正在考虑发布我最初开发供个人使用的应用程序(科学模拟/可视化)。 我的一个习惯是在类中使用一个main方法来单独测试类的运行情况。我认为这在某种程度上可能是不好的(毫无
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How do I convince programmers in my team to do TDD? 在从
假设我想测试是否有一个名为“Z”的驱动器。第一步是这样的; Get-PSProvider | Select-Object -Property Drives 这个给我; Drives: ... {C,
这是对 an old answer to a question about the necessity of functools.partial 的一种跟进: 虽然这个答案非常清楚地解释了这种现象及其
Perl 习惯很难改掉。两种语言之间的变量声明、作用域、全局/局部是不同的。是否有一组推荐的 python 语言习语可以使从 perl 编码到 python 编码的过渡不那么痛苦。 细微的变量拼写错误
我是一名优秀的程序员,十分优秀!