在RStudio中安装R软件包期间,如何关闭更新加载的软件包窗口?
如何禁用/抑制“更新加载的软件包”弹出窗口,该窗口在在RStudio中安装R软件包期间,如何关闭更新加载的软件包窗口?,r,R,如何禁用/抑制“更新加载的软件包”弹出窗口,该窗口在R软件包安装过程中不断显示?我很高兴将其设置为“否”,但我不知道如何使其正常工作(已调查install.packages()args并在谷歌上搜索,但没有发现) 背景:我的目标是比较大型(2k)软件包集合的安装时间。我想让它在一个循环中过夜,在每个迭代中:(1)我移除除basepriority包之外的所有包,(2)我测量特定包安装的时间。我必须没有弹出窗口(停止进程)来执行此操作 sessionInfo启动RStudio时: > sess
R
软件包安装过程中不断显示?我很高兴将其设置为“否”,但我不知道如何使其正常工作(已调查install.packages()
args并在谷歌上搜索,但没有发现)
背景:我的目标是比较大型(2k)软件包集合的安装时间。我想让它在一个循环中过夜,在每个迭代中:(1)我移除除base
priority包之外的所有包,(2)我测量特定包安装的时间。我必须没有弹出窗口(停止进程)来执行此操作
sessionInfo
启动RStudio时:
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS 10.14
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.1 tools_3.5.1
>
< P>你应该考虑一个标杆管理类似于:
#!/bin/bash
# Create file of all installed packages
Rscript -e 'writeLines(unname(installed.packages()[,1]), "installed-pkgs.txt")'
# Iterate over the file, benchmarking package load 3x (consider bumping this up)
while read -r pkg; do
echo -n "Benchmarking package [${pkg}]"
for iter in {1..3}; do
echo -n "."
Rscript --vanilla \
-e 'args <- commandArgs(TRUE)' \
-e 'invisible(suppressPackageStartupMessages(xdf <- as.data.frame(as.list(system.time(library(args[1], character.only=TRUE), FALSE)))))' \
-e 'xdf$pkg <- args[1]' \
-e 'xdf$iter <- args[2]' \
-e 'xdf$loaded_namespaces <- I(list(loadedNamespaces()))' \
-e 'saveRDS(xdf, file.path("data", sprintf("%s-%s.rds", args[1], args[2])))' \
"${pkg}" \
"${iter}"
done
echo ""
done <installed-pkgs.txt
然后您可以执行以下操作(我在几次pkg之后就终止了基准测试):
如果您打算在夜间运行它,请确保禁用macOS可能对您造成的所有“睡眠/空闲”时间(如禁用任何重量级屏幕保护程序、防止它将磁盘置于睡眠状态等)
请注意,我禁止打印包启动消息。您可能需要capture.output()
,或者使用它和不使用它进行比较
library()
还具有所有这些参数选项:
library(
package,
help,
pos = 2,
lib.loc = NULL,
character.only = FALSE,
logical.return = FALSE,
warn.conflicts = TRUE,
quietly = FALSE,
verbose = getOption("verbose")
)
您可能还需要对各种基准测试运行进行调整
我还只看了“用户对包负载的感觉”值的中位数。考虑检查所有的<代码>系统。数据框中的时间<代码>值。< /P>
如果你的MAC是足够健壮的CPU核心,你有一个快速的固态磁盘,你可以考虑使用GNU代码>并行< /代码>。如果你这么做,我肯定会使用超过3次的迭代,如果你这样做,并且对并发并行运行的数量是相当保守的。
< P>你应该考虑一个标杆管理类似于:#!/bin/bash
# Create file of all installed packages
Rscript -e 'writeLines(unname(installed.packages()[,1]), "installed-pkgs.txt")'
# Iterate over the file, benchmarking package load 3x (consider bumping this up)
while read -r pkg; do
echo -n "Benchmarking package [${pkg}]"
for iter in {1..3}; do
echo -n "."
Rscript --vanilla \
-e 'args <- commandArgs(TRUE)' \
-e 'invisible(suppressPackageStartupMessages(xdf <- as.data.frame(as.list(system.time(library(args[1], character.only=TRUE), FALSE)))))' \
-e 'xdf$pkg <- args[1]' \
-e 'xdf$iter <- args[2]' \
-e 'xdf$loaded_namespaces <- I(list(loadedNamespaces()))' \
-e 'saveRDS(xdf, file.path("data", sprintf("%s-%s.rds", args[1], args[2])))' \
"${pkg}" \
"${iter}"
done
echo ""
done <installed-pkgs.txt
然后您可以执行以下操作(我在几次pkg之后就终止了基准测试):
如果您打算在夜间运行它,请确保禁用macOS可能对您造成的所有“睡眠/空闲”时间(如禁用任何重量级屏幕保护程序、防止它将磁盘置于睡眠状态等)
请注意,我禁止打印包启动消息。您可能需要capture.output()
,或者使用它和不使用它进行比较
library()
还具有所有这些参数选项:
library(
package,
help,
pos = 2,
lib.loc = NULL,
character.only = FALSE,
logical.return = FALSE,
warn.conflicts = TRUE,
quietly = FALSE,
verbose = getOption("verbose")
)
您可能还需要对各种基准测试运行进行调整
我还只看了“用户对包负载的感觉”值的中位数。考虑检查所有的<代码>系统。数据框中的时间<代码>值。< /P>
如果你的MAC是足够健壮的CPU核心,你有一个快速的固态磁盘,你可以考虑使用GNU代码>并行< /代码>。如果这样做的话,我肯定会在每个pkg中使用3次以上的迭代,并且对并发并行运行的数量相当保守。
不要加载任何包。或者,在重新安装之前将其分离。@Ista我不确定是否正确理解您的评论:我只使用了例如install.packages(“dplyr”)
;运行此命令将触发弹出窗口。我是否可以在没有弹出窗口的情况下运行install.packages(“dplyr”)
?另外,在安装.packages(“dplyr”)(我认为它可以分离任何可能加载的包?)之前,我运行rm(list=ls())
,仍然可以看到弹出窗口。当您第一次启动R时,sessionInfo()
显示什么。您是否正在加载以前保存的工作空间?听起来好像有一些代码正在为您加载包。(rm
不卸载程序包,为此您需要类似于detach(…,unload=TRUE)
的东西。@MrFlick我更新了会话信息的答案。不要使用RStudio。如果您的目标是真正对程序包加载进行基准测试,那么您应该只使用命令行R。RStudio会进行相当多的“监视”在引擎盖下的R会话中发生了什么(该弹出窗口是这方面的一个指示器)。您不希望这影响测量。此外,除非您确实知道自己在做什么w/R/t pkg加载/卸载,否则您应该真正启动一个新的R进程,然后进行pkg加载(有计时)vs使用相同的会话,否则您可能会得到无效的计时。不要加载任何软件包。或者,在重新安装之前分离它们。@我不确定是否正确理解您的评论:我只使用了例如install.packages(“dplyr”)
;运行此命令会触发弹出窗口。我是否可以运行install.packages(“dplyr”)呢
没有弹出窗口?同样,在安装.packages(“dplyr”)之前,我运行rm(list=ls())
(我认为它可以分离任何可能加载的包?),仍然可以看到弹出窗口。当您第一次启动R时,sessionInfo()是什么
show。您正在加载以前保存的工作空间吗?听起来可能有一些代码正在为您加载包。(rm
不卸载包,您需要类似于detach(…,unload=TRUE)的内容)
。@MrFlick我更新了会话信息的答案。不要使用RStudio。如果你的目标是真正的基准测试包加载,你应该只使用命令行R。RStudio会在引擎盖下的R会话中“观察”正在发生的事情(这个弹出窗口就是一个指标)。您不希望这会影响测量。此外,除非您真的知道如何加载/卸载包装,否则您应该启动一个新的r进程,然后进行包装加载(计时)vs使用相同的会话,否则您可能会得到无效的计时。对不起,我的目标是对包安装进行基准测试,而不是加载!对不起,我的目标是对包安装进行基准测试,而不是加载!
library(
package,
help,
pos = 2,
lib.loc = NULL,
character.only = FALSE,
logical.return = FALSE,
warn.conflicts = TRUE,
quietly = FALSE,
verbose = getOption("verbose")
)