我想在生成使用多个包的答案/问题1时使用reprex个包.假设我想提供以下答案

library("gdata")
dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
ls()
mv(from = "dfA", to = paste0("df", "B"))
ls()

如果我将此代码直接传递到reprex,输出将如下所示:

library("gdata")
#> gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.
#> 
#> gdata: Unable to load perl libaries needed by read.xls()
#> gdata: to support 'XLSX' (Excel 2007+) files.
#> 
#> gdata: Run the function 'installXLSXsupport()'
#> gdata: to automatically download and install the perl
#> gdata: libaries needed to support Excel XLS and XLSX formats.
#> 
#> Attaching package: 'gdata'
#> The following object is masked from 'package:stats':
#> 
#>     nobs
#> The following object is masked from 'package:utils':
#> 
#>     object.size
#> The following object is masked from 'package:base':
#> 
#>     startsWith
dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
ls()
#> [1] "dfA"
mv(from = "dfA", to = paste0("df", "B"))
ls()
#> [1] "dfB"

reprex package(v2.0.1)于2022-03-23创建

与包裹装载相关的不相关信息丢失.另一种方法是 suppress 包启动消息:

suppressPackageStartupMessages(library("gdata"))
dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
ls()
#> [1] "dfA"
mv(from = "dfA", to = paste0("df", "B"))
ls()
#> [1] "dfB"

reprex package(v2.0.1)于2022-03-23创建

上述reprex输出通过以下方式生成:

library("reprex")
reprex(x = {
    suppressPackageStartupMessages(library("gdata"))
    dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
    ls()
    mv(from = "dfA", to = paste0("df", "B"))
    ls()

}, venue = "so")

Question

有没有更干净的方法?Reprex提供tidyverse_quiet个,但我想知道是否有一种聪明的方法可以"扩展"这个参数,使其适用于多个包?在一个加载多个包的假设答案中,我希望避免多次编写suppressPackageStartupMessages来 suppress 不必要的输出.

从不同的包中调用多个函数时,编写package::function可能会很繁重.


1For reference, I started thinking on that that after contributing 100 to 101.

推荐答案

另一个要考虑的选项是在RePrExx中使用KNITR块选项.显然,这些将适用于区块内的所有代码,尽管您可以使用多个区块进行更多控制.

reprex(x = {
  #+ chunk1, message = FALSE
  library("gdata")
  dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
  ls()
  mv(from = "dfA", to = paste0("df", "B"))
  ls()
  }, venue = "so")

它给出:

library("gdata")
dfA <- data.frame(colA = c(1, 2), colB = c(3, 4))
ls()
#> [1] "dfA"
mv(from = "dfA", to = paste0("df", "B"))
ls()
#> [1] "dfB"

reprex package(v2.0.1)于2022-03-23创建

R相关问答推荐

使用na.locf在长格式数据集中输入具有多个时间点的数据集

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

在R中列表的结尾添加数字载体

有没有一种方法可以从函数中创建一个值的列表,然后将这些值变成R中的直方图?我一直觉得不行

将年度数据插入月度数据

如何在Chart_Series()中更改轴值的 colored颜色 ?

如何删除最后一个可操作对象

计算两列中满足特定条件连续行之间的平均值

如何从容器函数中提取conf并添加到ggplot2中?

如何识别倒排的行并在R中删除它们?

基于R中的间隔扩展数据集行

Geom_Hline将不会出现,而它以前出现了

将多个变量组合成宽格式

如何对r中包含特定(未知)文本的行求和?

在R中使用列表(作为tibble列)进行向量化?

在同一单元格中创建包含整数和百分比的交叉表

使用列名和r中的前缀 Select 列的CREATE函数

Ggplot2:添加更多特定 colored颜色 的线条

从多行中 Select 最小值

如何根据每个子框架中分类因子的唯一计数来过滤子框架列表?