404 votos

Cómo descargar un paquete sin necesidad de reiniciar el R?

Me gustaría descargar un paquete sin tener que reiniciar R (principalmente debido a reiniciar R como puedo probar diferentes, en el conflicto de los paquetes es llegar frustrante, pero posiblemente esto podría ser utilizado en un programa para el uso de una función y luego otro, aunque con el espacio de nombres de referencia es probablemente una mejor idea para ese uso).

?library no muestra ninguna de las opciones que descargar un paquete.

Hay una sugerencia de que detach puede descargar el paquete, pero los siguientes no:

> detach(vegan)
Error in detach(vegan) : invalid 'name' argument
> detach("vegan")
Error in detach("vegan") : invalid 'name' argument

Entonces, ¿cómo puedo descargar un paquete?

507voto

kohske Puntos 30437

Intente esto:

detach("package:vegan", unload=TRUE)

Es posible tener varias versiones de un paquete cargado a la vez (por ejemplo, si usted tiene una versión en desarrollo y una versión estable en las diferentes bibliotecas). Para separar la garantía de que todas las copias se hayan separado, utilice esta función.

detach_package <- function(pkg, character.only = FALSE)
{
  if(!character.only)
  {
    pkg <- deparse(substitute(pkg))
  }
  search_item <- paste("package", pkg, sep = ":")
  while(search_item %in% search())
  {
    detach(search_item, unload = TRUE, character.only = TRUE)
  }
}

El uso es, por ejemplo

detach_package(vegan)

o

detach_package("vegan", TRUE)

7voto

He intentado lo kohske escribió como respuesta y me dieron error de nuevo, así que me puse a buscar y encontré este que trabajó para mí (R 3.0.2):

require(splines) # package
detach(package:splines)

o también

library(splines)
pkg <- "package:splines"
detach(pkg, character.only = TRUE)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X