相关疑难解决方法(0)

在r中抑制读者解析问题

我目前正在阅读使用该软件包的文件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)

r readr

10
推荐指数
2
解决办法
6713
查看次数

foreach (R):抑制来自全局环境加载的包的消息

我正在使用.packages = (.packages()). 但是,我找不到如何抑制包启动消息。由于它们是为每个分配的核心加载的,因此该列表会变得很长。我已经尝试suppressMessages()在函数调用和.packages参数周围包装标准调用等,但没有成功。

foreach(i = x, .packages = (.packages()))
Run Code Online (Sandbox Code Playgroud)

我在通用函数中使用 foreach 调用,因此它需要适应用户先验加载的任何包。我可以在 foreach 调用中使用 apply 调用,并在全局环境中加载所有包,但我认为foreach需要在其.packages参数中加载它?

如果有更好的方法来做到这一点,请告诉我。

foreach packages r

7
推荐指数
1
解决办法
972
查看次数

你怎么能总是抑制R中的消息?

我在R中看到的消息最常见的地方是在包的开头.抑制一个函数的消息很容易实现,suppressMessages如下所述:在R中加载包时禁用消息.通过嵌入函数调用{}内部,也可以抑制多行消息生成supressMesssages函数调用.但是,如果你有一个完整的脚本,在这里和那里发生消息,无论如何都要完全禁用它们?我正在寻找像选项(warn = -1)但是对于消息的东西.请注意,sink我不想做我想要的,因为它重定向所有输出...我想保持输出,print但不保持输出message.

r

6
推荐指数
1
解决办法
3233
查看次数

加载多个包并抑制消息

阅读这篇文章.而一个.

我想同时在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
查看次数

抑制包加载消息

我用谷歌搜索了一下,发现如果我使用,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)

r

4
推荐指数
1
解决办法
3021
查看次数

标签 统计

r ×5

foreach ×1

packages ×1

readr ×1