我正在尝试在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
我真的只需要安装此软件包即可。
答案 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()
。