我的包中的一个功能在构建时拒绝添加到包源中,然后在运行 R CMD 检查时失败。
我的包位于 github here上。该文件,calculate_latitude_and_longitude.R,当然存在于 R 目录中:
$ ls R
calculate_latitude_and_longitude.R clean_coordinates_XBLOCK.R clean_crime_data.R
load_crime_data_by_ward.R clean_coordinates.R
clean_coordinates_YBLOCK.R dccrimedata-package.R
我能够构建包,但由于某种原因,构建不包含文件 calculate_latitude_and_longitude.R。我可以通过浏览 tar 球中的 R 目录来验证它是否跳过了这个文件。
安装或运行时,R CMD check dccrimedata_0.1.tar.gz
我在 00install.log 文件中收到以下错误:
Error in .install_package_code_files(".", instdir) :
files in 'Collate' field missing from '/Users/erikshilts/workspace/dc_crime_data/dccrimedata.Rcheck/00_pkg_src/dccrimedata/R':
calculate_latitude_and_longitude.R
ERROR: unable to collate and parse R files for package ‘dccrimedata’
我已经尝试重命名函数、创建新文件、注释行、删除 roxygen 标签等,但这些都没有帮助将该函数放入包中。
知道出了什么问题吗?
该函数的完整代码在这里:
#' Calculate Latitude and Longitude
#'
#' Calculates latitude and longitude from XBLOCK AND YBLOCK coordinates.
#' The coordinates are given in the NAD 83 projection, Maryland state plane,
#' with units in meters. Documentation for this calculation can be found in the
#' README file.
#'
#' @param crime_data data.frame of crime records
#' @return data.frame with two additional columns, latitude and longitude, with units in the standard GPS format
#' @export
calculate_latitude_and_longitude <- function(crime_data) {
xy_coords <- crime_data[, c('XBLOCK', 'YBLOCK')]
coordinates(xy_coords) <- c('XBLOCK', 'YBLOCK')
# NAD83, maryland state plane, units in meters
proj4string(xy_coords) <- CRS("+init=esri:102285")
# Transform to latitude and longitude for GPS
xy_coords <- spTransform(xy_coords, CRS("+init=epsg:4326"))
xy_coords <- as.data.frame(xy_coords)
names(xy_coords) <- c('longitude', 'latitude')
crime_data <- cbind(crime_data, xy_coords)
crime_data
}
我的说明文件如下所示:
Package: dccrimedata
Title: An R package containing DC crime data.
Description: Crime data from DC from 2006 to mid-2012
Version: 0.1
License: GPL-3
Author: erik.shilts
Maintainer: <erik.shilts@opower.com>
Depends:
rgdal,sp
Collate:
'calculate_latitude_and_longitude.R'
'clean_coordinates_XBLOCK.R'
'clean_coordinates_YBLOCK.R'
'clean_coordinates.R'
'clean_crime_data.R'
'load_crime_data_by_ward.R'
'dccrimedata-package.R'
更新:
我将更改隔离到名称中带有“经度”的任何文件(“纬度”工作正常)。我在这个 repo 中的 .Rbuildignore 文件如下所示:
.git
.Rhistory
.Rcheck
\.tar\.gz$
out
您会注意到我没有转义 中的句.git
点,这导致它忽略其中包含“Xgit”的任何文件(X 是任何字符),从而导致它忽略我的文件“calculate_latitude_and_lon* git *ude.R”