我目前正在阅读使用该软件包的文件readr.我们的想法是使用read_delim行读取行来查找非结构化数据文件中的最大列.代码输出存在parsing问题.我知道这些并将在导入后处理列类型.是否有办法关闭,problems()因为通常options(warn)不工作
i=1
max_col <- 0
options(warn = -1)
while(i != "stop")
{
n_col<- ncol(read_delim("file.txt", n_max = 1, skip = i, delim="\t"))
if(n_col > max_col) {
max_col <- n_col
print(max_col)
}
i <- i+1
if(n_col==0) i<-"stop"
}
options(warn = 0)
Run Code Online (Sandbox Code Playgroud)
我试图压制的控制台输出如下:
.See problems(...) for more details.
Warning: 11 parsing failures.
row col expected actual
1 1####4 valid date 1###8
Run Code Online (Sandbox Code Playgroud) 我正在使用.packages = (.packages()). 但是,我找不到如何抑制包启动消息。由于它们是为每个分配的核心加载的,因此该列表会变得很长。我已经尝试suppressMessages()在函数调用和.packages参数周围包装标准调用等,但没有成功。
foreach(i = x, .packages = (.packages()))
Run Code Online (Sandbox Code Playgroud)
我在通用函数中使用 foreach 调用,因此它需要适应用户先验加载的任何包。我可以在 foreach 调用中使用 apply 调用,并在全局环境中加载所有包,但我认为foreach需要在其.packages参数中加载它?
如果有更好的方法来做到这一点,请告诉我。
我在R中看到的消息最常见的地方是在包的开头.抑制一个函数的消息很容易实现,suppressMessages如下所述:在R中加载包时禁用消息.通过嵌入函数调用{}内部,也可以抑制多行消息生成supressMesssages函数调用.但是,如果你有一个完整的脚本,在这里和那里发生消息,无论如何都要完全禁用它们?我正在寻找像选项(warn = -1)但是对于消息的东西.请注意,sink我不想做我想要的,因为它重定向所有输出...我想保持输出,print但不保持输出message.
我想同时在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?
我用谷歌搜索了一下,发现如果我使用,suppressPackageStartupMessages()我应该能够解决我的问题,但事实证明,什么也没发生。
我正在像这样加载我的包裹:
if (!require("gplots", quietly = T)) {
sink("/dev/null")
suppressPackageStartupMessages(suppressWarnings(suppressMessages(install.packages("gplots"))))
suppressPackageStartupMessages(suppressWarnings(suppressMessages(library("gplots", quietly = T))))
}
Run Code Online (Sandbox Code Playgroud)
当我的脚本运行时,我收到以下消息:
Attaching package: ‘gplots’
The following object is masked from ‘package:IRanges’:
space
The following object is masked from ‘package:S4Vectors’:
space
The following object is masked from ‘package:stats’:
lowess
Run Code Online (Sandbox Code Playgroud)
在另一个包裹上,
if (!require("Rmixmod", quietly = T)){
sink("/dev/null")
suppressPackageStartupMessages(suppressWarnings(suppressMessages(install.packages("R_packages/Rmixmod_2.0.1.tar.gz", type="source"))))
}
Run Code Online (Sandbox Code Playgroud)
我也在加载时获得引用选项,我也试图将其静音。
Rmixmod version 2.0.1 loaded
R package of mixmodLib version 3.0.1
Condition of use
----------------
Copyright (C) MIXMOD Team - 2001-2013
MIXMOD is publicly available …Run Code Online (Sandbox Code Playgroud)