问题标签 [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 - 从 Rstudio 增加 R Ubuntu 中的最大 DLL 数
我不断收到“达到的最大 DLL 数...”错误,但这里的解决方案从命令行对我不起作用(这取决于操作系统,我在 Linux 上)。继续阅读以了解我如何在 R 中增加 DLL。
r - 是否可以在 R 中通过一次调用来创建有状态函数?
我知道我可以adder
使用以下工厂函数创建有状态函数adder_maker
:
该函数按预期递增并位于其自己的封闭环境中。
但是,如果我不想将工厂函数存储在中间变量中,那么内部函数最终会出现在全局环境中。
- 为什么 adder2 不与其匿名父级的环境相关联?
- 如果 adder2 存在于全局环境中,为什么它会返回 1(而不是
Error: object 'x' not found
,在尝试评估内部分配的 RHS 时,x+1
)? - 有没有其他聪明的方法来创建一个行为类似于 adder1 的函数,而不为父函数分配一个变量?
r - 在受限环境中使用 `rmarkdown::render`
我有以下Rmd
我调用的文件test.Rmd
:
我想通过以下方式调用渲染:
但它失败了:
第一个块很好,所以有些东西起作用了。如果我y
在我的全局环境中定义,我可以在没有envir
参数的情况下运行它并且它工作正常。
我想也许render
不喜欢列表,所以让我们给它一个适当的环境:
但更糟糕的是,它没有找到print
!
现在文档提到使用该函数new.env
,所以出于绝望,我尝试了这个:
现在它起作用了!
所以我对几件事感到困惑,回顾一下:
- 为什么
render
识别列表(第一个块没有失败)但随后忽略块中的常规分配 - 为什么我的第二次尝试不起作用,它与我的第三次尝试有何不同?
- 这是一个错误吗?
- 这样做的惯用方法是什么?
r - 如何重新排序搜索路径?
我想将环境(包或其他)附加到位置 2,并且我希望它留在那里。
大多数时候我可以使用library
with来确保这一点,但我遇到了以下问题:pos=3
tidyverse
tidyverse
将其子包附加在pos = 2
,我想要一条以search
开头的路径:
我怎样才能做到这一点?
r - 从 R 函数返回列表与环境
在以下两种情况下,使用其中一种有什么优势/劣势?Case-I 将其输出作为环境返回,Case-II 将其输出作为列表返回。
案例一:
案例二:
r - R Shiny - 第一个块中的数据集加载在第二个块中不存在......?
我用 library learnr构建的闪亮应用程序中有一个奇怪的错误。关于我刚刚加载并刚刚可视化的对象的错误“找不到对象”(意味着该对象不存在?)
虽然我没有可重现的示例,但你们中的一些人可能会理解是什么造成了错误:
我有一个加载数据集的第一个块 {r load}。这里没有错误,我什至可以可视化数据集(截图如下)
然后我有第二个块,我想在其中操作数据集。但它告诉我数据集不存在!怎么可能,我之前只是想象了一大块?!...
我不明白数据集如何存在于一个块中,而不是另一个。这是否意味着数据集未在全局环境中加载?是学习者图书馆的问题吗?
也许有人会有一个想法,或者我可以测试的东西。先感谢您。
编辑:
问题与环境/工作区有关。在第一个块中,即使我加载数据集,它也不会存储在环境中。我在第二个块中测试了该函数ls()
,它告诉我工作区中没有对象。加载的数据集不在这里,我不知道为什么......
r - 锁定环境但不锁定 .Random.seed
是否可以锁定全局环境并仍然允许.Random.seed
设置或删除?的默认行为lockEnvironment()
对于我的用例来说过于激进。
背景
drake
7.0.0 版将有一个新的保障措施来保护再现性。
错误来自对 的调用data(mtcars)
。构建的行为x
本身就会改变x
's 的依赖关系。没有护栏,工作流程就会自行失效。
但是有了护栏,我们会遇到像https://github.com/ropensci/drake/issues/749和https://github.com/ropensci/drake/issues/675#issuecomment-458222414这样的边缘案例。
r - 创建 .Renviron 中设置的用户库目录的最佳方法是什么?
我正在努力寻找为我的团队设置 R 的最佳方式。因为我们的机构在网络共享上拥有用户主目录,所以 R 用户库默认为此网络共享。经过一番研究,我发现在 .Renviron 文件中设置 R_LIBS_USER 是最有用的(就像rstudio 论坛中所述),正如同一篇文章中所述,它不会在安装新版本的 R 后自动创建此目录,因此 . libPaths() 默认为 C:/Program Files/R/../.. (忽略 R_LIBS_USER)
在下面的问题中,同样的问题是在 6 年前提出的。接受的答案没有帮助,因为它建议制作一个与版本无关的用户库。我不想在我的库中使用这些旧包。 为什么每次 R 升级都必须手动创建目录“~/R/%p-library/%v”?
我也尝试在 .Rprofile 中设置 .libPaths,但使用 .Renviron 文件感觉更高效,所以我更喜欢使用它。这也允许用户在他们的项目中使用他们自己的 .Rprofile 设置。
我目前的工作方式是:
- .Renviron 文件
R_LIBS_USER=C:/Users/[user]/R/%p-library/%v
- 每个用户在新的 R 安装后调用此命令
dir.create(Sys.getenv('R_LIBS_USER'), recursive = TRUE)
我想知道自动创建 R_LIBS_USER 文件夹的最佳/最干净的设置是什么,因此重新安装 R 不需要用户可能忘记的任何手动操作。
r - 当我“文件/打开项目...”时更改 RStudio 打开的默认目录
当我单击“文件/打开项目...”时,RStudio 在“~”打开我的主目录,但我想在“~/Documents/coding/”打开我存储所有 Rproject 的目录。如何更改 RStudio 打开项目时打开的默认目录?
我试过添加全局变量
HOME='~/Documents/coding'
到我的 .Rprofile 和 Renviron 文件,但这并没有改变打开的默认目录,即使我重新启动了 RStudio。
r - 使用glue::glue时处理命名空间的更好方法
我想创建一个本身使用 awesome 函数的glue::glue
函数。
但是,当我想粘合一个存在于函数和全局环境中的变量时,我发现自己正在处理一些命名空间问题:
我宁愿保留以x
包一致性命名的变量。
我最终做了这样的事情,到目前为止效果很好,但只是推迟了问题(很多,但仍然):
有没有更好/更清洁的方法来做到这一点?