Ошибка в rbind (info, getNamespaceInfo (env, "S3methods")) при установке factoextra - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь установить пакет "factoextra", используя tar-архив с локальным исходным кодом в Windows. Я могу установить другие пакеты таким же образом без проблем. Однако при установке «factoextra» я получаю сообщение об ошибке S3methods.

Я попытался использовать локальные двоичные файлы Windows, установить последнюю версию Rtools и убедился, что у меня установлены все зависимости. Я также пытался использовать заархивированные версии пакета.

install.packages('D:\\R_Packages\\Packages\\factoextra_1.0.5.tar.gz', repos = NULL, type="source")

* installing *source* package 'factoextra' ...
** package 'factoextra' successfully unpacked and MD5 sums checked
** R
** data
*** moving datasets to lazyload DB
** byte-compile and prepare package for lazy loading
Error in rbind(info, getNamespaceInfo(env, "S3methods")) : 
  number of columns of matrices must match (see arg 2)
ERROR: lazy loading failed for package 'factoextra'
* removing 'D:/R-3.5.2/library/factoextra'
In R CMD INSTALL
Warning in install.packages :
   installation of package ‘D:/R_Packages/Packages/factoextra_1.0.5.tar.gz’ had non-zero exit status

Мне просто нужен этот пакет для установки.

1 Ответ

2 голосов
/ 01 мая 2019

Я нашел эту ветку: http://r.789695.n4.nabble.com/Error-in-rbind-info-getNamespaceInfo-env-quot-S3methods-quot-td4755490.html,, которая приводит меня к тому, как я решил похожую проблему на моей машине.

Я обнаружил, что сломанная версия пакета была установлена ​​в моей системе и имелабыть удаленным вручную, прежде чем я смог установить чистую версию.

Найдите, если и где установлена ​​factoextra (она может быть в вашей системе, просто устаревшая или сломанная):

find.package("factoextra")

Если он уже есть (просто сломан), вы можете попытаться удалить его с помощью:

remove.packages("factoextra")

Если remove.packages() завершится неудачно, даже если find.packages() говорит, что пакет есть, используйте путь, возвращаемый find.packages()использовать файловую систему вашей ОС для поиска и удаления пакета - будьте осторожны только для удаления того, что, как вы знаете, сломано.

После удаления старого поврежденного пакета используйте install.packages("factoextra"), и оно должно работать.

У меня было несколько пакетов, которые были разбиты таким образом.Если это так, вы можете определить, какие пакеты удалить и установить таким образом, используя что-то вроде:

allPackages <- installed.packages()[, 1]
findBrokenPackages <- function(packages) {
    for (p in packages) {
        tryCatch(ncol(asNamespace(p)$.__NAMESPACE__.$S3methods),
                 error = function(e) print(c(p, e)))
    }
}
findBrokenPackages(allPackages)

Это распечатает все пакеты с такой же проблемой.Я бы посоветовал удалить все битые пакеты перед тем, как снова попытаться использовать install.packages().

...