write - carpetas inst y extdata en R Packaging
r studio>} (2)
En la documentación, R sugiere que los archivos de datos brutos (no Rdata ni Rda) se ubiquen en inst/extdata/
Desde el primer párrafo en: http://cran.r-project.org/doc/manuals/R-exts.html#Data-in-packages
El subdirectorio de datos es para archivos de datos, ya sea para estar disponibles mediante carga diferida o para cargar utilizando datos (). (La elección se realiza mediante el campo ''LazyData'' en el archivo DESCRIPTION: el valor predeterminado es no hacerlo). No se debe utilizar para otros archivos de datos necesarios para el paquete, y la convención ha crecido para usar directorio inst / extdata para tales archivos.
Por lo tanto, he movido todos mis datos brutos a esta carpeta, pero cuando construyo y vuelvo a cargar el paquete y luego trato de acceder a los datos en una función con (por ejemplo):
read.csv(file=paste(path.package("my_package"),"/inst/extdata/my_raw_data.csv",sep=""))
# .path.package is now path.package in R 3.0+
Aparece el error "no se puede abrir el archivo".
Sin embargo, parece que hay una carpeta llamada /extdata
en el directorio del paquete con los archivos (post-build e install). ¿Qué está pasando con la carpeta /inst
?
¿Todo en la carpeta / inst se inserta en el /
del paquete?
Estuviste muy cerca y esencialmente tuviste esto. Una referencia formal de ''Writing R Extensions'' es:
1.1.3 subdirectorios de paquete
[...]
El contenido del subdirectorio
inst
se copiará recursivamente en el directorio de instalación. Los subdirectorios deinst
no deberían interferir con los utilizados por R (actualmente,R
,data
,demo
,exec
,libs
,man
,help
,html
yMeta
, y las versiones anteriores usabanlatex
,R-ex
). La copia deinst
ocurre después deinst
src
para que suMakefile
pueda crear archivos para ser instalados. Antes de R 2.12.2, los archivos se instalaron en plataformas POSIX con los permisos en las fuentes del paquete, por lo que se debe tener cuidado para asegurarse de que no sean demasiado restrictivos:R CMD build
hará los ajustes adecuados. Para excluir archivos de la instalación, se puede especificar una lista de patrones de exclusión en el archivo.Rinstignore
en el directorio de origen de nivel superior. Estos patrones deberían ser expresiones regulares parecidas a Perl (consulte la ayuda para la expresión regular en R para conocer los detalles), una por línea, que se comparará (10) con el archivo y las rutas del directorio, por ejemplo,doc/.*[.]png$
excluirá todos los archivos PNG eninst/doc
según la extensión (minúscula).
Más útil que usar file.path
sería usar file.path
. Una vez que su paquete está instalado, puede tomar su archivo de la siguiente manera:
fpath <- system.file("extdata", "my_raw_data.csv", package="my_package")
fpath
ahora tendrá la ruta absoluta en su HD al archivo.