2 votes

Fichiers du champ Collate manquants dans le paquet après avoir été construits à partir d'un fichier .Rbuildignore incorrect

L'une des fonctions de mon paquet refuse d'être ajoutée au source du paquet lorsqu'il est construit, et échoue ensuite lors de l'exécution de la vérification R CMD.

Mon paquet est situé sur github aquí . Le fichier, calculate_latitude_et_longitude.R, existe certainement dans le répertoire 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

Je suis capable de construire le paquet, mais la construction n'inclut pas le fichier calculate_latitude_et_longitude.R pour une raison quelconque. Je peux vérifier qu'il saute ce fichier en parcourant le répertoire R dans la boule de tar.

Après avoir installé ou exécuté R CMD check dccrimedata_0.1.tar.gz J'obtiens l'erreur suivante dans le fichier 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’

J'ai essayé de renommer la fonction, de créer un nouveau fichier, de commenter les lignes, de supprimer les balises roxygen, etc., mais rien de tout cela ne m'a aidé à intégrer cette fonction dans le paquet.

Une idée de ce qui ne va pas ?

Le code complet de la fonction est ici :

#' 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
}

Mon fichier DESCRIPTION ressemble à ceci :

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'

Mise à jour :

J'ai isolé le changement pour tout fichier dont le nom contient "longitude" ("latitude" fonctionne bien). Mon fichier .Rbuildignore dans ce répertoire ressemble à ceci :

.git
.Rhistory
.Rcheck
\.tar\.gz$
out

Vous remarquerez que je n'échappe pas le point dans .git ce qui l'amène à ignorer tout fichier contenant "Xgit" (X pouvant être un caractère quelconque), et donc à ignorer mon fichier "calculate_latitude_and_lon*". git *ude.R"

9voto

Erik Shilts Points 1763

Le .R .git . Voici le fichier .Rbuildignore :

.git
.Rhistory
.Rcheck
\.tar\.gz$
out

La période échappée incorrecte dans .git lui faisait ignorer les fichiers nommés avec le mot "longitude" à cause du "git" au milieu du mot.

Le fichier .Rbuildignore doit ressembler à ceci :

\.git
\.Rhistory
\.Rcheck
\.tar\.gz$
out

Amusez-vous avec les expressions régulières !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X