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 detachpuede descargar el paquete, pero ambos fallan:
detach(vegan)
Error en
detach(vegan):nameargumento no válido
detach("vegan")
Error en
detach("vegan"):nameargumento no válido
Entonces, ¿cómo descargo un paquete?

.libPaths()Le proporciona las rutas a todas las bibliotecas de su sistema.libraryde dos maneras: 1: no es el mismo usolibraryque 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
?detachpara 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' argumentTambién puede usar el
unloadNamespacecomando, 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 Rverifique la memoria con elpryrpaquete:Revisa mi
sessionInfo()Carguemos el
Seuratpaquete 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_packageofrecida a través delwithrpaquete ofrece la posibilidad de:Ejemplo
geom_pointutilizado 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