我正在尝试在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()。
| 归档时间: |
|
| 查看次数: |
4165 次 |
| 最近记录: |