varias style img htmloutput graficos graficas div r cran

r - img - tags$style shiny



R 2.14-detectar paquetes sin espacio de nombres (3)

Según el R News para v2.14:

Todos los paquetes deben tener un espacio de nombres, y uno se crea en la instalación si no se proporciona en las fuentes. Esto significa que cualquier paquete sin un espacio de nombres debe volver a instalarse bajo esta versión de R (pero los paquetes de solo datos sin el código R aún se pueden usar).

¿Cómo detecto programáticamente qué paquetes instalados en 2.13.x no tienen un espacio de nombres para saber qué debo actualizar?


Gran hilo. Yo estaba atrapado en el mismo problema. Para terminar todo lo que hay que hacer puedes:

remove.packages(names(pkgNS[!pkgNS])) install.packages(names(pkgNS[!pkgNS]))


Solo corre :

update.packages(checkBuilt=TRUE)


La función packageHasNamespace contiene la clave. Úsalo junto con los installed.packages :

El siguiente código recorre todas las ubicaciones de la biblioteca en .libPaths :

pkgNS <- NULL for(i in seq_along(.libPaths())){ libLoc <- .libPaths()[i] pkgs <- installed.packages(lib.loc=libLoc)[, 1] pkgNS <- c(pkgNS, sapply(unname(pkgs), packageHasNamespace, package.lib=libLoc) ) }

El resultado de este código es un vector lógico denominado pkgNS que es VERDADERO si el paquete tiene un espacio de nombres, FALSO si no lo tiene.

Para obtener solo los paquetes que no tienen un espacio de nombres, cree un subconjunto de pkgNS donde pkgNS es FALSO:

pkgNS[!pkgNS] abind bitops CircStats combinat corpcor deldir FALSE FALSE FALSE FALSE FALSE FALSE Design evd financial fpc getopt gsubfn FALSE FALSE FALSE FALSE FALSE FALSE ineq magic mlbench optparse plotrix ppcor FALSE FALSE FALSE FALSE FALSE FALSE