如何处理"警告:对象' xxx'是由多个数据调用创建的#34;

时间:2015-11-08 05:57:55

标签: r package warnings

检查R包时,我收到了警告

Warning: object 'xxx' is created by more than one data call

是什么导致这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:7)

当包的RData目录中的多个data文件存储具有相同名称的变量时,会出现此警告。

要重现,我们创建一个包并将cars数据集保存两次到不同的文件:

library(devtools)    
create("test")   
dir.create("test/data")    
save(cars, file = "test/data/cars1.RData")
save(cars, file = "test/data/cars2.RData")   
check("test")

check的输出包括以下几行:

  

发现以下重要警告:     警告:对象'汽车'由多个数据调用创建

如果收到此警告,您可以使用以下命令查找重复的变量名称:

rdata_files <- dir("test/data", full.names = TRUE, pattern = "\\.RData$")
var_names <- lapply(
  rdata_files,
  function(rdata_file)
  {
    e <- new.env()
    load(rdata_file, envir = e)
    ls(e)
  }
)

Reduce(intersect, var_names)
## [1] "cars"