software - Recargar el paquete R con extensiones compiladas
r suite download (3)
Aquí hay una extensión de la respuesta del Sr. G. Grothendieck, si está incrustado en "yourpackage", se puede compilar de una vez desde la consola R:
reload <- function( path ){
detach("package:yourpackage", unload = TRUE)
library.dynam.unload("yourpackage", system.file(package = "yourpackage"))
path <- paste( "--vanilla CMD INSTALL ", path )
system2( ''R'', path )
require("yourpackage")
}
entonces de R:
yourpackage :: reload (''/ home / me / yourpackage'')
¿Es posible volver a cargar un paquete R con extensiones nativas en una sesión R? Estoy desarrollando Rliblinear , que usa varias funciones C
Si realizo un cambio en el código R en el paquete, solo puedo volver a instalar y recargar;
$ R CMD build Rliblinear
$ R CMD INSTALL Rliblinear
y luego en una concha R
;
> detach("package:Rliblinear", unload=TRUE)
> library(Rliblinear)
Sin embargo, las funciones de C
no se ven afectadas a menos que reinicie el intérprete de R
¿Hay alguna manera de forzar al intérprete a que vuelva a cargar el objeto compartido, Rliblinear.so
?
Esto mostrará una lista de sus bibliotecas de enlaces dinámicos cargados:
library.dynam()
y esto descargará Rliblinear.*
en el paquete Rliblinear.
library(Rliblinear)
# ... run package ...
detach("package:Rliblinear", unload = TRUE)
library.dynam.unload("Rliblinear", system.file(package = "Rliblinear"))
Puede emitir library.dynam()
nuevamente solo para verificar que ya no esté en la lista.
Tiendo a hacer mis pruebas en la línea de comandos con littler para asegurarme de que obtengo una sesión R nueva. También puedes hacer esto con Rscript
.
Así que mi flujo de trabajo sería
$ R CMD INSTALL Rliblinear/ ## alternatively, install from tarball
$ r -lRliblinear -e''someExpressionFromThePackage()''
que también puede envolver en una sola línea con &&
y / o preceder con un paso limpio.