studio quitar notacion leer importar datos cientifica cargar r import namespaces order roxygen

quitar - Al escribir mi propio paquete R, parece que no consigo que otros paquetes se importen correctamente



leer datos en r (2)

Como una solución temporal para el error MATCH, he tenido éxito al enumerar el paquete del zoo en la sección Depends: del archivo de DESCRIPTION del paquete.

Muy bien, el primer intento de escribir un paquete R y estoy atascado. Así es como creo el paquete:

package.skeleton("pkg",code_files=some.filenames) roxygenize("okg")

Estoy usando roxygen2 y tengo las siguientes importaciones en mi archivo "pkg-package.R":

@import data.table zoo lubridate

Desde una terminal, luego corro:

R CMD build pkg R CMD check pkg R CMD install pkg

Durante la fase de verificación, recibo las siguientes advertencias:

** preparando el paquete para la carga perezosa
Advertencia: reemplazar la importación anterior ''hora'' al cargar ''lubricado''
Advertencia: reemplazar la importación anterior ''mday'' al cargar ''lubridate''
Advertencia: reemplazar el ''mes'' anterior de importación al cargar ''lubridate''
Advertencia: reemplazar la importación anterior ''wday'' al cargar ''lubridate''
Advertencia: reemplazar la ''semana'' de importación anterior al cargar ''lubridate''
Advertencia: reemplazar la importación anterior ''yday'' al cargar ''lubridate''
Advertencia: reemplazar el ''año'' de importación anterior al cargar ''lubricado''
** ayuda
* instalando índices de ayuda
** construcción de índices de paquetes ...
** prueba si el paquete instalado puede ser cargado
Mensajes de advertencia:
1: sustitución de importación anterior ''hora'' al cargar ''lubricado''
2: reemplazar la importación anterior ''mday'' al cargar ''lubridate''
3: reemplazar el ''mes'' anterior de importación al cargar ''lubridate''
4: reemplazar la importación anterior ''wday'' al cargar ''lubridate''
5: reemplazo de la ''semana'' anterior de importación al cargar ''lubridate''
6: reemplazar la importación anterior ''yday'' al cargar ''lubridate''
7: reemplazar el ''año'' de importación anterior al cargar ''lubricado''

Realmente no estoy seguro de qué hacer con ellos, pero parecen advertencias típicas de sobrescribir las cosas en el espacio de nombres. En cualquier caso, puedo instalar el paquete, pero esto es lo que sucede cuando trato de usarlo:

biblioteca (pkg)
Anulando los métodos + y - para POSIXt, Date y difftime
Mensajes de advertencia:
1: sustitución de importación anterior ''hora'' al cargar ''lubricado''
2: reemplazar la importación anterior ''mday'' al cargar ''lubridate''
3: reemplazar el ''mes'' anterior de importación al cargar ''lubridate''
4: reemplazar la importación anterior ''wday'' al cargar ''lubridate''
5: reemplazo de la ''semana'' anterior de importación al cargar ''lubridate''
6: reemplazar la importación anterior ''yday'' al cargar ''lubridate''
7: reemplazar el ''año'' de importación anterior al cargar ''lubricado''
d <- my.function (arg1, arg2)
Error en MATCH (x, x): no se pudo encontrar la función "MATCH"

Usando traceback (), descubrí que esto se está generando durante una llamada a merge.zoo (). Así que intenté cargar el zoológico a mano durante mi sesión R y listo, entonces la función funciona correctamente sin el mensaje de error.

He intentado cambiar el orden de las importaciones a mano tanto en el archivo "pkg-package.R" como en NAMESPACE. Sin embargo, según lo que encontré en otra parte, no he agregado Importaciones o Dependencias a DESCRIPCIÓN. ¿Ayuda?


Las advertencias se deben a que data.table y lubridate definen una hour símbolo, etc .; vea data.table::hour y lubridate::hour . Puede evitar esto importando solo las funciones de lubridate / data.table que desee, en lugar de todo el paquete; un archivo NAMESPACE estándar contendría

importFrom(lubridate, hour)

por ejemplo. En roxygen2 usarías la etiqueta:

@importFrom lubridate hour

El problema de MATCH es probablemente porque la merge está enviando incorrectamente, probablemente porque zoo debería tener en su espacio de nombre S3method(merge, zoo) lugar de export(merge.zoo) , como se describe en Writing R Extensions, 1.6.2. La solución aquí es ponerse en contacto con el mantenedor de zoo , packageDescription(''zoo'')$Maintainer (el mantenedor está suficientemente versado en R que siento que he diagnosticado mal ...).