问题标签 [renv]
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 (renv) 项目
我和我的同事正在用 RStudio 中的 Bookdown 编写一本书。由于我使用 ggplot 创建了很多图形,因此我对其他包(ggplot、ggforce、gganimate...)有很多依赖关系,因此我在本书的过程中添加了 renv 来处理包管理。在全新安装我的 Windows 之后,我现在确实无法再次设置项目,因为从 R 到版本 3.6.3 的更新和使用的软件包。
带有 renv 的项目的初始状态是版本为 3.6.2 的 R,我重新安装了它。打开项目后,我运行renv::restore()
以使用所有包恢复环境。目前只有包 nloptr(版本 1.2.1)有错误,因为它必须从源代码构建包。
要解决此错误,我通过以下方式手动安装软件包:
之后可以安装所有软件包,但现在,其中许多都显示警告package 'X' was built under R version 3.6.3
。
如果renv无法恢复原始状态,那么它有什么意义,因为所有包都已被 R 的更新更改?如何正确管理 R 项目?
r - 如何在给定 Windows 255 文件路径限制的情况下管理 R 包,例如检查点和 Rcpp?
所以我试图使用检查点包(日期为 2020 年 3 月 1 日)安装 Rcpp。
我的大多数包都很好,但是 Rcpp 专门创建了很多临时目录,然后将其删除,例如:
这是 84 个字符长,我相信有些更长。
Checkpoint 也创建了许多目录,例如这里有一个自定义库:
这是 67 个字符,其中 52 个仅在管理多个检查点日期或版本时需要。
这意味着对于文件路径,例如:
假设即使是临时文件也不能超过 255 个字符,那么我肯定有 < 60 个字符可用于所有 Rcpp 临时对象。
我使用以下代码进行了测试:
它失败是因为许多“找不到文件或目录”,我认为实际上失败了,因为无法创建 00LOCK-Rcpp/00new/Rcpp/include/Rcpp/ 然后将所有 .h 文件解压缩到它。我很好奇,所以我运行了以下内容:
它安装得很好。
关于如何制作检查点的任何想法要么不创建这么多嵌套目录,要么在整个软件包安装之前忽略 file_path 255 限制?
现在,我可能会将目录向上移动几级,但如果我能深入了解我的猜测是否真的正确,或者我是否遗漏了什么,我将不胜感激!
r - 使用 renv::restore() 安装包时出错
我在使用renv 时遇到问题。对于一个更大的项目,我们希望使用renv来拥有相同版本的r和我们所有的包。然而,一旦有更新版本的包可用并且我们运行renv::restore()
我们就会收到类似以下的错误(请注意:rcpparmadillo不是唯一的包。它也发生在 graybox、mime、stringi 等等)。
我现在有两个问题:
- 我该如何解决这个错误?
- 如果renv,我们如何在整个团队中使用相同版本的包如果每次有新版本可用
谢谢你。莉齐
r - 使用 renv 时,Rscript 无法识别库
我正在使用 R 的 v3.6.3 和 renv 开发 Mac OSX。在 Rstudio 和 R 中,我可以加载已安装包的库,例如library(ggplot2)
作品。但是,当我使用 Rscript 运行脚本时,我收到了消息
根据this SO answer,我需要确保
与的值相同
但值是一样的,都指向renv-system-library
我的项目文件夹中的。
那么我该如何解决呢?
r - Rmarkdown 和 Renv 的重现性问题
我最近注意到,相同的 R markdown 文档在不同条件下(例如不同的项目)运行时会生成不同的图。作为一个玩具示例,请考虑以下文档:
它应该产生一个类似以下的情节,有时我会成功并得到它:
然而,其他时候,我得到这个替代版本,这是无稽之谈:
我注意到加载 tidyverse 包后,有些版本是不同的。例如,第一个 ggplot 是 3.2.1,而后一个是 3.3.0。这稍后具有不同的版本号,因为它在使用 Renv 的 R 项目中单独维护。
好的,可能是不同的版本号?即使考虑到我很久以前就知道这个包的这些不同版本,我也很难理解在任何ggplot 版本中给定这个代码是如何生成第二个图的。如果不是版本号,是否有任何可能导致此问题的提示?
r - How to completely remove renv from an R statistics program
I have been using renv
on a R project, but now want to remove it from renv versioning, i.e. delete all renv associated files, but still have access to the libraries that I used installed under renv. How do I do this? Alternatively, how do I migrate from renv to packrat?
r-markdown - 如何从项目的 renv 库中的 Rmd 文件中停止 rmarkdown::render()?
我有一个使用默认blogdown::build_site()
路由编译的 Hugo 博客。
我决定renv::
试一试,因为我的一些帖子既情节重又容易依赖旧的软件包版本,所以为什么不确保将来完整的站点重建不会造成问题,对吧?考虑到这一点,我决定最好的使用方法renv
是让每篇博文(在 中/content/post/
)成为自己的renv
项目。由于 使用的全局库缓存renv
,这甚至不会造成太多的存储损失。
现在博客将无法编译,因为rmarkdown::render()
(build_site()
每篇博客文章都会调用它)似乎遍历每篇博客文章的整个树以查找 Rmd 文件,当然在renv
库文件夹中发现了一些文件,并愉快地尝试编译它们——并且可以预见地失败。
所以我的问题是
- 将每篇博客文章置于自己的
renv
环境中是否违反了惯例(我才刚刚开始学习 renv 和朋友们)? - 如果不是,为什么
build_site()
不玩renv
好呢?我错过了什么吗?还是我发现了一个真正的问题?还是我应该放手并切换到手动 blogdown 站点构建方法?
这个问题似乎微不足道(我们只需要停止render()
遍历/renv/
目录),但据我所知,blogdown 和 renv 之间的这种相互作用似乎尚未探索(我只发现了一些切线相关的 问题,所以我想我可以寻找建议先在这里。
我的网站是使用Rscript -e "blogdown::build_site(local=FALSE)"
(不使用 RStudio 中的按钮)构建的。一旦这个脚本开始在renv
库树中渲染 Rmd 文件,它最终会失败:
这是我的会话信息:
r - 在 github 存储库的 R 项目中,Anaconda R 环境无法访问库/包
我在 Anaconda 中有一个 R 环境,其中包含我需要和使用的所有包。我使用 conda CLI 从 github 添加了一个私有存储库到我的电脑上。项目文件包括一个 renv 文件夹以及一个 .Rproj 文件。当我尝试打开项目中的任何 R 脚本而不打开 Rproj 文件来打开项目时,它们都显示为空白,当我尝试打开 csv 文件时,它说它不存在。当我打开 Rproject 时,我无法访问我通常可以在 R 中访问的任何库或包。当我尝试在此环境中安装包时,出现错误:
怎么了?我只想访问存储库的脚本并加载我常用环境的包。任何帮助表示赞赏!
r - renv::restore() 非常慢
我是renv
第一次尝试这个包。
我拿了一个我用 packrat 管理的现有项目,删除了 .Rprofile 和 packrat 目录(我很高兴从头开始)
我使用选项添加了一个本地工作存储库,然后运行 renv::init()。这发现了一个完整的依赖项列表(138 个 CRAN 包、10 个工作包和一个 github 安装包)
然后我将该文件夹复制到另一台计算机,将 RENV_PATHS_SOURCE 更改为该系统上全局可用的内容,然后转到项目目录,启动 R,它告诉我它不同步并要求我运行状态。我做了,看起来不错,报告了一堆需要安装的库。然后我跑了 renv::restore()
然后它正确列出了所有依赖项,然后继续安装它们。
这真的很慢。
我坐在这里等待,看到新的 tarball 被列出来,而且最多需要一整分钟来获取每个 tarball。但更典型的情况是每个时间在 1-2 分钟范围内。
这很奇怪,因为它们被列为在 0.2-0.7 秒内下载。嗅探网络接口证实了这一点。短时间内会有大量的包进来,每个新的 tarball 都列出来,看起来它们可以与报告的花费时间相匹配。
在所有这些过程中,R cpu 使用率在 0.0% 和 1.0% 之间波动。
那么 renv 在做什么呢?
所以对于一个不是特别复杂的项目,它包含 180 个包,我会等待 3 个小时来获取 tarball?那他们自己应该只需要0.5秒吗?这将成为一个问题。就我个人而言,我坚持从 Packrat 迁移,直到这个问题得到解决或理解。
但是 renv 在做什么或在等待什么?据我所知,没有网络活动,没有 cpu 使用,没有 iowait(查看顶部输出)。
r - renv 和 git 交互 R
我试图更好地理解renv
R 中的包是如何工作的,以及它是如何与 git 交互的。这是我的问题
假设我的 R 项目中有 master 和几个 git 分支,每个(master 和分支)我想使用不同的环境(不同的库或相同库的不同版本)。
renv
将能够处理它,即如果我从一个分支切换到另一个分支将需要调用renv::restore()
.我有两个单独的项目,
renv
它们都在运行,分别称为项目 A 和项目 B。我想从项目 B 中获取环境并替换项目 A 中的环境。我该如何完成它?我只需要将renv
文件夹从一个项目复制到另一个项目吗?