- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以将方法来源到除 .GlobalEnv
之外的环境中? ?
我慢慢对 R 的屏蔽机制感到有些沮丧(我可能会在这方面提出自己的问题,但如果您感兴趣,目前只需尝试使用包 RMySQL
和 RSQLite
相同的过程并按此顺序加载它们;使我的 RMySQL 内容崩溃)并且非常希望切换到始终使用 <namespace>::foo()
而不仅仅是 foo()
全场全部 我的脚本。
然而,使用 <namespace>::foo()
比使用“本地副本”效率低(例如 namespace..foo <- <namespace>::foo()
;我可以为感兴趣的人提供示例,但自己测试很容易)。
制作本地副本对 来说是一种享受其他 我正在加载的包(大部分)确实有一个命名空间,但在我自己的代码变成“包”之前,它确实是 不是 .
所以我虽然“让我们将我的东西来源到 NS <- newenv(parent=emptyenv())
,然后应用与其他包相同的例程”。但 R 不会让我:
setGeneric(
name="fooBar",
signature=c("src"),
def=function(src, ...){
standardGeneric("fooBar")
}
)
setMethod(
f="fooBar",
signature=signature(src="character"),
definition=function(src, ...){
cat(src, sep="\n")
}
)
# These would go into:
"Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/gnrc.R"
"Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/mthd.R"
# This works:
source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/gnrc.R")
source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/mthd.R")
# This does not:
NS <- new.env(parent=emptyenv())
source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/gnrc.R", local=NS)
source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/mthd.R", local=NS)
eval(parse(file="Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/gnrc.R"), envir=NS)
eval(parse(file="Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/mthd.R"), envir=NS)
> source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/gnrc.R", local=NS)
Error in eval.with.vis(expr, envir, enclos) :
could not find function "setGeneric"
> source("Q:/usr/wsp/3.6.2/32bit/root/_SCRATCH/mthd.R", local=NS)
Error in eval.with.vis(expr, envir, enclos) :
could not find function "setMethod"
最佳答案
我的天啊!对不起各位,这有点尴尬:
我已经改用 new.env(parent=emptyenv())
始终如一地防止在缓存环境时出现一些内存膨胀并且已经习惯了它,以至于我忘记了在某个时间拥有不同的父环境确实有意义;-)
在这种情况下 NS <- new.env()
会做的伎俩。
关于r - 向不同于 .GlobalEnv 的环境采购方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095294/
有什么区别?我读了Hadley但这对我来说并不清楚。 此外,我应该将其称为 envir=... 还是 env=...?好像没什么区别。 有关示例,请参阅 here和 here . 最佳答案 .Glob
我想创建一个函数( CleanEnvir ),它基本上调用 remove/rm 并从 .GlobalEnv 中删除某些对象. CleanEnvir CleanEnvir ls() [1] "C
是否可以将方法来源到除 .GlobalEnv 之外的环境中? ? 我慢慢对 R 的屏蔽机制感到有些沮丧(我可能会在这方面提出自己的问题,但如果您感兴趣,目前只需尝试使用包 RMySQL 和 RSQLi
我想在环境中评估一些代码访问库(.GlobalEnv 之上的所有环境)但不会访问在 .GlobalEnv 中创建的对象。我已经尝试了几个解决方案,但似乎没有一个能按预期工作 1。 .GlobalEnv
我试图找出哪些对象在我的 R session 中占用了大量内存,但问题是该对象可能是在未知环境中以未知名称无形创建的。 如果对象存储在 .GlobalEnv 或已知环境中,我可以轻松使用 ls(env
现在我有以下几行: envCache a$get("foo") NULL > a$set("foo", 1) > a$get("foo") [1] 1 很酷,是吧?请注意,parent=emptye
想象一下,我们有一个环境,其中包含一些局部变量和一个 data.table。 local({ vecl gc() cleaning used (Mb) gc trigger
这个问题类似于Source script to separate environment in R, not the global environment , 但有一个关键的转折。 考虑一个源另一个脚
我在使用 RStudio 时遇到令人困惑的错误。当我使用命令行时,在键入命令的过程中(绝不会在执行命令时),R 会抛出以下错误: Error in loadNamespace(name) : ther
我是一名优秀的程序员,十分优秀!