如何识别R库中从GitHub安装的包并统计其数量
解决你的R包来源相关问题
嘿,这两个问题其实不难解决,我给你分享两种实用的方法,基础R和工具包方案都有:
1. 找出从GitHub安装的包
方法一:用基础R实现(无需额外安装包)
GitHub安装的包在其描述文件里会带有RemoteType = "github"的标记,我们可以遍历所有包来提取这个信息:
# 获取所有已安装包的名称 all_installed_pkgs <- .packages(all.available = TRUE) # 逐个检查包的来源是否为GitHub is_github_pkg <- sapply(all_installed_pkgs, function(pkg_name) { pkg_desc <- packageDescription(pkg_name) # 判断是否存在GitHub远程类型标记 !is.null(pkg_desc$RemoteType) && pkg_desc$RemoteType == "github" }) # 提取所有GitHub安装的包名 github_packages <- names(is_github_pkg[is_github_pkg]) # 查看结果 github_packages
方法二:用devtools工具包(更简洁)
如果你已经安装了devtools,可以用它的session_info()快速获取包来源:
# 先加载devtools library(devtools) # 获取所有包的详细信息 pkg_details <- session_info()$packages # 筛选出GitHub来源的包 github_packages <- pkg_details[pkg_details$source == "GitHub", ] # 查看包名 github_packages$package
2. 统计GitHub安装包的数量
有了上面的结果,统计数量就非常简单了:
- 用基础R方法的话,直接运行
length(github_packages)或者sum(is_github_pkg) - 用devtools方法的话,运行
nrow(github_packages)就行
按照你说的总共有145个包,运行完代码后就能得到GitHub包的具体数量啦。
内容的提问来源于stack exchange,提问作者IloveCatRPython
相关产品推荐
相关产品推荐

