检查R包时,我收到了警告
Warning: object 'xxx' is created by more than one data call
是什么导致这种情况,我该如何解决?
答案 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"