关闭R中特定的警告信息

4 浏览
0 Comments

关闭R中特定的警告信息

下面是我从不同类型的Excel表格中导入数据的函数。

library(dplyr)
library(readxl)
library(data.table)
library(purrr)
library(tidyr)
        read_excel_allsheets <- function(filename) { 
          sheets <- readxl::excel_sheets(filename) 
          x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X)) 
          names(x) <- sheets 
          x 
        } 
        files <- list.files(path = "C:/Data", 
                            pattern = "*.xlsx",
                            full.names = TRUE)
        imported_templates <- lapply(files, read_excel_allsheets)
        names(imported_templates) <- basename(files)

当我从Excel表格中导入数据时,我会收到下面这样的消息:

新名称:

* `` -> ...4
* `` -> ...5
* `` -> ...7
* `` -> ...8
* `` -> ...10
* ...

这非常烦人,因为我需要导入大约1000个表格。我尝试用这行代码关闭这个消息,但消息仍然存在。

library(readxl, warn.conflicts=FALSE)

所以,有人可以帮我解决这个问题,关闭这个警告吗?

0
0 Comments

在R中关闭特定警告的原因是为了避免在执行代码时出现不必要的警告信息。解决方法是通过设置R的warn选项来关闭警告信息。

具体代码如下:

library(dplyr)
library(readxl)
library(data.table)
library(purrr)
library(tidyr)
oldw <- getOption("warn")
options(warn = -1)
read_excel_allsheets <- function(filename) { 
  sheets <- readxl::excel_sheets(filename) 
  x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X)) 
  names(x) <- sheets
  x
} 
files <- list.files(path = "C:/R/data", 
                    pattern = "*.xlsx",
                    full.names = TRUE)
imported_templates <- suppressMessages(lapply(files, read_excel_allsheets) )
names(imported_templates) <- basename(files)
options(warn = oldw)

以上代码中,首先通过`getOption("warn")`获取当前的警告设置,然后通过`options(warn = -1)`将警告设置为-1,即关闭所有警告。接着定义了一个名为`read_excel_allsheets`的函数,用于读取Excel文件的所有工作表。在读取文件之前,使用`readxl::excel_sheets`函数获取Excel文件中的所有工作表,并使用`lapply`函数逐个读取每个工作表的数据。读取完成后,将工作表的名称作为数据的名称,并将所有数据存储在列表`x`中。然后,使用`list.files`函数获取指定路径下的所有Excel文件,并使用`lapply`函数逐个读取每个Excel文件的数据,并将数据存储在列表`imported_templates`中。最后,将Excel文件的文件名作为数据的名称,并恢复之前的警告设置。

通过以上代码,我们成功关闭了警告信息,并顺利读取了Excel文件中的数据。

0
0 Comments

在R中,有时候会收到来自`vctrs::vec_as_names()`的提示信息,这不是一个警告,而是一条消息。如果想要关闭这个提示信息,可以使用以下代码:

options(rlib_name_repair_verbosity='quiet')

如果想要恢复默认行为,可以使用以下代码:

options(rlib_name_repair_verbosity=NULL)

使用这些代码可以控制是否显示`vctrs::vec_as_names()`的提示信息。

0
0 Comments

在R中,有时候会出现一些警告信息。在某些情况下,我们可能希望关闭特定的警告信息。下面是一个关于如何关闭特定警告信息的问题的原因和解决方法。

在R中,有时候我们会遇到一些警告信息。然而,并不是所有的警告信息都是我们希望看到的。有时候,我们希望关闭某些特定的警告信息。在这种情况下,我们可以使用`suppressMessages`函数来实现。

在上述问题中,出现了一些警告信息。然而,这些警告信息实际上是一些消息。因此,我们应该使用`suppressMessages`函数来关闭这些消息。具体的解决方法如下所示:

suppressMessages({
  imported_templates <- lapply(files, read_excel_allsheets)
})

通过使用`suppressMessages`函数,我们可以在一段代码中关闭特定的消息。在上述代码中,我们使用了`lapply`函数对`files`列表中的每个文件执行`read_excel_allsheets`函数。通过使用`suppressMessages`函数,我们可以关闭`read_excel_allsheets`函数返回的消息。

通过上述方法,我们可以关闭特定的消息,以便在R中更好地处理警告信息。这对于在大型项目中减少不必要的噪音和提高代码可读性非常有用。

0