问题标签 [r-environment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 用于分离 R 中环境的源脚本,而不是全局环境
有没有办法让Rsource()
中的脚本作为父级附加到全局环境()?.GlobalEnv
目前,当我获取脚本时,该脚本的所有变量和函数都会出现在我的全局(交互式)环境中。我想在搜索路径中包含这些变量和函数,但不在.GlobalEnv
. 也就是说,我希望源脚本的行为类似于附加包,它附加在全局环境和基础环境之间(参见Advanced R Environments中的图)
r - 覆盖 R 中命名空间未导出的函数
在 R 中,似乎有一种方法可以覆盖命名空间中的函数(参见此处)。我想知道,是否可以覆盖未导出的包中的函数。
例如,ggplot_build()
由 导出ggplot2
。我可以使用以下代码示例覆盖它:
但是,有没有办法覆盖print.ggplot()
不是由 导出的函数ggplot
?
我可以通过三元组访问未导出的函数,:
例如ggplot2:::print.ggplot()
. 有没有办法覆盖这些功能?
r - R 将 RSelenium 驱动程序环境作为函数参数传递
我可能没有看到明显的东西,无论如何我想创建函数来自动从远程驱动程序已经处理的 url 中提取文本。我想将 xpath 表达式和可以找到远程驱动程序的环境作为函数参数传递
此函数的可能调用可能是fun.XpathExtractText("//*",env)
但在调用构建部分后不久出现错误消息:
但是如果我直接在 env 中执行从错误消息中提取的调用,它将起作用。
我尝试将环境也作为环境传递 remdir 本身,因为它是一个环境,但这根本不算数,函数在调用构建后卡在同一点。我不知道什么?
r - R:在环境中评估脚本
我想在指定环境中评估的脚本中加载库函数。
例子:
为方便起见,假设评估环境是基础环境:
替换loadfonts()
为extrafont:::loadfonts()
效果更好,但仍然给出:
因为loadfonts()
需要pdfFonts()
在grDevices
.
r - 定义只能从给定函数访问的环境
我有以下功能设计用于在循环之外打印进度条,它运行良好,但在全局环境中创建了一个环境对象。
我对环境不太满意,但我认为我可以将这个环境设置为只能从我的函数中访问,而不管全局环境,我该怎么做?
我标记了创建环境的行。
请运行完整代码以查看该函数在做什么。
我的问题总结:
r - 为什么必须使用两轮表达式引用来定义 local({...})?
我试图了解 R 的local
功能是如何工作的。有了它,你可以打开一个临时的局部作用域,这意味着发生在local
(最值得注意的是变量定义)中的东西,保留在local
. 只有块的最后一个值被返回给外界。所以:
local
定义如下:
据我了解,会发生两轮表达式引用和后续评估:
eval(quote([whatever expr input]), [whatever envir input])
由 生成为未评估的调用substitute
。- 调用在
local
的调用者框架(在我们的例子中是全局环境)[whatever expr input]
中进行评估,因此在[whatever envir input]
但是,我不明白为什么第 2 步是必要的。为什么我不能local
像这样简单地定义:
我认为它会expr
在空环境中评估表达式?所以定义的任何变量都expr
应该存在envir
并因此在结束后消失local2
?
但是,如果我尝试这个,我会得到:
因此a
泄漏到全球环境。为什么是这样?
编辑:更神秘:为什么它不会发生:
r - call return from child frame
How can I return a value in a function, through another function, see example here :
fun1
should stop at first_try
and return 1
, and if second_try
had worked it would have returned 2
.
Is such a thing possible ?
r - 如何检查环境是否是包命名空间
我正在寻找一种方法来检测环境是否是包命名空间。期望的行为:
r - 将数据读入 R
我正在尝试将 msigdb 数据库中的数据读取到我的 R 环境中,但是我无法将其读取为我想要的格式。现在,当我读取其中的数据时,它被读取为“整数”类型,我希望它作为“字符”类型或任何其他类型读取,这样当我在数据帧/矩阵之间传输数据时,我不会得到整数值用于项目而不是构成项目名称的书面字母。
这是我目前拥有的,但就像我说的那样,当typeof(df[1,1])
我得到"integer"
.
总结一下:在读取包含应该是字符的列的数据后,当前行为是:typeof(df[1,1)]
产生"integer"
。期望的行为是:typeof(df[1,1]]
产生"character"
可重现的例子:
谢谢!
r - 如何删除除环境之外的所有变量
我想删除所有全局变量,但其中包含变量的已定义环境除外。
说我有以下内容:
还有一些全局变量:
我知道我可以删除所有全局变量,但一个setdiff
但是当我调用以下命令时,我得到一个错误。这是预期的,因为my.env
实际上是一个指针,如果我没记错的话
如何删除所有变量但保留my.env
?(其中包含变量)