r - 包装器/副词以抑制 R 中的消息
问题描述
许多 tidyverse 函数的消息非常冗长,导致日志中充满了诸如
New names:
* `` -> ...1
* `` -> ...2
* `` -> ...3
* `` -> ...4
* `` -> ...5
重复了无数次。这使得查看实际警告消息变得非常困难。
是否有一个插入式 (a) 包装函数可以抑制从其中运行的代码生成的消息,或者 (b) 一个副词将函数变成不生成消息的函数?我希望一旦我的代码稳定并且我不需要查看来自特别冗长的行的所有消息,我可以对其进行简单的修改。purrr::quietly
几乎是我想要的,但是因为它将原始输出作为列表的一部分返回,所以它并不是真正的插入式替换或未修改代码行的包装器。
解决方案
suppressMessages()
做你正在寻找的东西。
a <- data.frame(a=1,a=2, check.names = FALSE)
tibble::as_tibble(a, .name_repair = "universal")
#> New names:
#> * a -> a...1
#> * a -> a...2
#> # A tibble: 1 x 2
#> a...1 a...2
#> <dbl> <dbl>
#> 1 1 2
suppressMessages({
tibble::as_tibble(a, .name_repair = "universal")
})
#> # A tibble: 1 x 2
#> a...1 a...2
#> <dbl> <dbl>
#> 1 1 2
它也适用于管道%>%
。
library(dplyr, warn.conflicts = FALSE)
tibble::as_tibble(a, .name_repair = "universal") %>%
suppressMessages()
#> # A tibble: 1 x 2
#> a...1 a...2
#> <dbl> <dbl>
#> 1 1 2
推荐阅读
- reporting-services - SSRS - 柱形图 - 标签样式
- r - R 代码 - 应用日期格式后返回 NULL 的日期
- javascript - 避免在 TypeScript / JavaScript 代码中删除“forEach”、“filter”等的换行符
- java - 从字符串模式中提取数字
- c++ - Boost Graph Library astar_search 用于隐式图
- python - Pythonic 相当于 Matlab 的 textscan
- simulink - 在 Simulink 中从 XY 图中获取每个值
- javascript - 我可以仅在某些条件下添加 React 输入事件处理程序吗?
- c# - 使用 asp.net 时如何检查我的 pin 是否存在于 SQL 数据库中?
- r - 如何在 R 中专门替换文本字符串中的 \r\n 字符