安装factoextra时,rbind(info,getNamespaceInfo(env,“ S3methods”))中出现错误

时间:2019-04-30 16:39:03

标签: r package install

我正在尝试在Windows上使用本地源tar球安装“ factoextra”软件包。我可以用相同的方式安装其他软件包,没有问题。但是,在安装“ factoextra”时,出现与S3方法有关的错误。

我尝试使用本地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 个答案:

答案 0 :(得分:2)

我发现了这个线程: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()返回的路径使用OS的文件系统查找和删除软件包-请小心只能删除您知道已损坏的内容。

一旦旧的,破损的软件包被删除,请使用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()