我正在尝试使用Windows上的本地源码tar ball安装"factoextra“包。我可以用同样的方式安装其他包,没有问题。然而,当安装"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我真的只需要安装这个包。
发布于 2019-05-02 00:55:57
我找到了这个帖子:http://r.789695.n4.nabble.com/Error-in-rbind-info-getNamespaceInfo-env-quot-S3methods-quot-td4755490.html,它引导我找到了如何在我的机器上解决类似问题的方法。
我发现我的系统上安装了一个损坏的软件包版本,必须手动删除它才能安装干净的版本。
查找factoextra是否安装以及安装位置(它可能在您的系统上,只是过时或损坏):
find.package("factoextra")如果它已经存在(只是坏了),你可以尝试用以下命令删除它:
remove.packages("factoextra")如果在find.packages()提示软件包已经存在的情况下remove.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()之前删除所有损坏的包。
https://stackoverflow.com/questions/55925357
复制相似问题