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

Lis*_*ark 2 install r package

我正在尝试在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
Run Code Online (Sandbox Code Playgroud)

我真的只需要安装此软件包。

小智 5

我找到了这个线程:http : //r.789695.n4.nabble.com/Error-in-rbind-info-getNamespaceInfo-env-quot-S3methods-quot-td4755490.html,这使我找到了解决类似问题的方法我机器上的问题。

我发现系统上已安装了该软件包的损坏版本,必须先手动将其删除,然后才能安装干净版本。

查找是否以及在何处factoextra安装(它可能在您的系统上,刚刚过时或损坏):

find.package("factoextra")
Run Code Online (Sandbox Code Playgroud)

如果已经存在(刚刚损坏),可以尝试使用以下方法将其删除:

remove.packages("factoextra")
Run Code Online (Sandbox Code Playgroud)

如果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)
Run Code Online (Sandbox Code Playgroud)

这将打印出所有具有相同问题的软件包。我建议先删除所有损坏的程序包,然后再尝试使用install.packages()