在命令检查期间说服 R 与 .shp 文件关联的 .dbf 文件不是可执行文件

Convincing R that the .dbf file associated with a .shp file is not an executable during command checks

我正在努力向 CRAN 提交 R 包。现在我正在尝试减少包的内存占用。因为这个包处理具有非常特殊格式的空间数据,所以我想包括一个格式正确的 shapefile 作为示例。如果我包含全尺寸原始 shapefile,则 R CMD 检查中没有警告(文件大小除外)。但是,如果我裁剪文件并将裁剪后的版本包含在包中(在“inst/extdata”中),我会收到此警告:

W  checking for executable files (389ms)
   Found the following executable file:
     inst/extdata/temp/temp.dbf
   Source packages should not contain undeclared executable files.
   See section ‘Package structure’ in the ‘Writing R Extensions’ manual.

此文件是与 shapefile 关联的数据库文件。我尝试使用 rgdal 函数、sf 函数和 QGIS 裁剪文件并保存它。我还使用 chmod 验证了裁剪文件的模式与原始文件匹配。我什至尝试将 .dbf 更改为 .DBF。除了在 BinaryFiles 中列出 CRAN 不会在提交中接受之外,还有其他建议吗?

我是 运行 R 版本 4.0.2,通过 RStudio 2021.09.1 在 Mac OSX 10.15.7 上。 rgdalsf 以及它们的所有依赖项都已完全更新。

这是一个已知问题[1],其中 file 将 mis-identify 日期为 2022 年 last-update 的 DBF 文件。最简单的解决方法是不使用 2022 年更新保存文件时的日期。或者,您可以在事后简单地更改文件的第二个字节,例如:

fn = "myfile.dbf"
sz = file.info(fn)$size
r = readBin(fn, raw(), sz)
r[2] = as.raw(121) ## make it 2021 instead of 2022
writeBin(r, fn)

(另请参阅 R-package-devel 上的相应讨论)