Ответ 1
Функция packageHasNamespace
содержит ключ. Используйте его вместе с installed.packages
:
Следующий код пропускает все расположения библиотек в .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)
)
}
Результатом этого кода является именованный логический вектор pkgNS
, который имеет значение ИСТИНА, если пакет имеет пространство имен, FALSE, если это не так.
Чтобы получить только те пакеты, у которых нет пространства имен, создайте подмножество pkgNS
, где pkgNS
- FALSE:
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