相关疑难解决方法(0)

优雅的方法来检查丢失的包并安装它们?

这些天我似乎与共同作者分享了很多代码.他们中的许多人都是初级/中级R用户,并没有意识到他们必须安装他们尚未拥有的软件包.

是否有一种优雅的方式来调用installed.packages(),将其与我正在加载的那些进行比较并在安装时如果丢失?

packages r r-faq

307
推荐指数
17
解决办法
12万
查看次数

在运行install.packages()之前检查已安装的软件包

我有一个R脚本,与不同计算机上的多个用户共享.其中一行包含install.packages("xtable")命令.

问题是,每次有人运行脚本时,R都会花费大量时间显然重新安装软件包(实际上确实需要一些时间,因为实际案例中有几个软件包的向量).

如何首先检查软件包是否已安装,然后仅install.packages()针对那些软件包运行?

packages r

128
推荐指数
9
解决办法
14万
查看次数

加载多个包并抑制消息

阅读这篇文章.而一个.

我想同时在oner和supress suppressPackageStartupMessages中加载包.

第一个链接中的答案使用了lapply:

packages <- c("tidyverse", "qdap", "stringr", "stringi", "textstem", "foreach", "caret", "xgboost", "quanteda")
lapply(packages, require, character.only = T)
Run Code Online (Sandbox Code Playgroud)

这会向控制台返回一个难看的列表:

[[1]]
[1] TRUE

[[2]]
[1] TRUE

[[3]]
[1] TRUE

[[4]]
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

另外,我还想摆脱那些在加载时发送到控制台的消息,例如

> library(tidyverse)
Loading tidyverse: ggplot2
Loading tidyverse: dplyr
Conflicts with tidy packages --------------------------------------------------------------------
accumulate(): purrr, foreach
filter():     dplyr, stats
lag():        dplyr, stats
when():       purrr, foreach
Run Code Online (Sandbox Code Playgroud)

是否有一个聪明,简短的方法来加载包的向量和suppressPackageStartupMessages?

r

5
推荐指数
4
解决办法
1029
查看次数

传递角色arg.脱离

我试图通过粘贴论点来使用分离.这应该是一件容易的事,但不适合我.当我想到使用时,我知道是时候寻求帮助了eval(parse())

通常,如果我加载一个包,我可以按如下方式分离它:

detach(package:reshape)
Run Code Online (Sandbox Code Playgroud)

我想通过将packahe名称作为字符向量传递来做同样的事情.这是我的尝试:

pack<-"reshape"
detach(paste("package:", pack, sep=""))
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

> detach(paste("package:", pack, sep=""))
Error in detach(paste("package:", pack, sep = "")) : 
  invalid 'name' argument
Run Code Online (Sandbox Code Playgroud)

请帮帮我.

r

3
推荐指数
1
解决办法
498
查看次数

标签 统计

r ×4

packages ×2

r-faq ×1