Me gustaría descargar un paquete sin tener que reiniciar R (principalmente porque reiniciar R al probar diferentes paquetes en conflicto se está volviendo frustrante, pero posiblemente esto podría usarse en un programa para usar una función y luego otra, aunque el espacio de nombres la referencia es probablemente una mejor idea para ese uso).
?library
no muestra ninguna opción que pueda descargar un paquete.
Hay una sugerencia que detach
puede descargar el paquete, pero ambos fallan:
detach(vegan)
Error en
detach(vegan)
:name
argumento no válido
detach("vegan")
Error en
detach("vegan")
:name
argumento no válido
Entonces, ¿cómo descargo un paquete?
.libPaths()
Le proporciona las rutas a todas las bibliotecas de su sistema.library
de dos maneras: 1: no es el mismo usolibrary
que en otros lugares, y 2: el término se usalibrary()
para cargar ... no un biblioteca, pero un paquete.require
" o "deshacerlibrary
" porque así es como normalmente cargo, erm, "paquetes". Por lo tanto, titularlo correctamente hace que la pregunta sea más correcta pero también más difícil de encontrar.Respuestas:
Prueba esto (ver
?detach
para más detalles):Es posible tener varias versiones de un paquete cargadas a la vez (por ejemplo, si tiene una versión de desarrollo y una versión estable en diferentes bibliotecas). Para garantizar que todas las copias se separen, use esta función.
El uso es, por ejemplo
o
fuente
> detach("package:MASS", unload=TRUE) Error in detach("package:MASS", unload = TRUE) : invalid 'name' argument
También puede usar el
unloadNamespace
comando, como en:La función separa el espacio de nombres antes de descargarlo.
fuente
Puede desmarcar el botón de casilla de verificación en RStudio (paquetes).
fuente
detach("package:packageToUnload", unload=TRUE)
ejecución de un comando y no es diferente de la solución ya propuesta.Intenté lo que kohske escribió como respuesta y recibí un error nuevamente, así que busqué un poco y encontré esto que funcionó para mí (R 3.0.2):
o tambien
fuente
Cuando va de un lado a otro entre los scripts, a veces puede ser necesario descargar un paquete. Aquí hay una simple declaración IF que evitará las advertencias que aparecerían si intentara descargar un paquete que no se cargó actualmente.
Incluir esto en la parte superior de un script puede ser útil.
Espero que te haga el día!
fuente
detach(package:PackageName)
funciona y no hay necesidad de usar comillas.fuente
Puede probar todo lo que desee para eliminar un paquete (y todas las dependencias que trajo consigo),
unloadNamespace()
pero la huella de la memoria aún persistirá. Y no,detach("package:,packageName", unload=TRUE, force = TRUE)
tampoco funcionará.Desde una nueva consola nueva o
Session > Restart R
verifique la memoria con elpryr
paquete:Revisa mi
sessionInfo()
Carguemos el
Seurat
paquete y verifiquemos la nueva huella de memoria :Usemos
unloadNamespace()
para eliminar todo:Ahora verifique
sessionInfo()
:Verifique la huella de la memoria :
Enlace a la demostración en pantalla
fuente
Me gustaría agregar una solución alternativa. Esta solución no responde directamente a su pregunta sobre la descarga de un paquete, pero, en mi humilde opinión, proporciona una alternativa más limpia para lograr su objetivo deseado, que entiendo, está ampliamente preocupado por evitar conflictos de nombres y probar diferentes funciones, como se indicó:
Solución
La función
with_package
ofrecida a través delwithr
paquete ofrece la posibilidad de:Ejemplo
geom_point
utilizado en el ejemplo no es accesible desde el espacio de nombres global. Creo que puede ser una forma más limpia de manejar conflictos que cargar y descargar paquetes.fuente
Tenga en cuenta también que solo puede usar
unload()
una vez. Si lo usa por segunda vez sin volver a ejecutarlibrary()
, obtendrá el argumento de 'nombre' no válido del mensaje de error no muy informativo :Creado en 2020-05-09 por el paquete reprex (v0.3.0)
fuente
Simplemente vaya a la ventana SALIDA, luego haga clic en el ícono Paquetes (se encuentra entre los íconos de Ploteo y Ayuda ). Eliminar " marca / marca de verificación " del paquete que desea descargar.
Para usar nuevamente el paquete, simplemente coloque una " marca de verificación o marca de verificación " delante del paquete o use:
fuente
Otra opción es
Aparentemente, esto también trata el tema de los métodos S3 registrados que no se eliminan con
unloadNamespace()
fuente