You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何R包rAltmetric从CRAN移除?求替代方法获取Altmetric分数

rAltmetric从CRAN移除的原因及替代方案

移除原因

CRAN移除包的核心原因通常是维护停滞:rAltmetric长期未进行版本更新,无法适配新版R语言、依赖包的变更,或是不符合CRAN的包质量规范(比如自动化测试失败、文档缺失等),最终被CRAN清理下架。这类第三方API封装包很容易因为上游API调整或维护中断,失去在CRAN上留存的资格。

替代方法

1. 直接调用Altmetric官方API

这是最灵活可靠的方案,用httr包发送HTTP请求即可实现:

library(httr)

# 示例:通过DOI获取单篇论文的Altmetric数据
target_doi <- "10.1038/nature12345"
api_url <- paste0("https://api.altmetric.com/v1/doi/", target_doi)
response <- GET(api_url)

# 解析返回的JSON数据
altmetric_result <- content(response, "parsed")

# 提取Altmetric分数
if (!is.null(altmetric_result$score)) {
  cat("Altmetric分数:", altmetric_result$score, "\n")
} else {
  cat("未找到对应数据\n")
}

如果需要批量调用或更高的请求限额,可以去Altmetric官网申请免费API密钥,请求时在URL中加入?key=你的密钥参数即可。

2. 使用其他维护中的R包

  • rcrossref:通过CrossRef获取论文元数据时,部分结果会包含Altmetric的关联链接或基础计量字段;
  • fulltext:支持从多个数据源获取论文内容及关联计量数据,可间接对接Altmetric信息。

3. 批量处理实现

如果需要批量获取多篇论文的Altmetric数据,推荐用purrr包实现批量请求,同时注意控制请求频率避免触发API限流:

library(purrr)
library(httr)

doi_list <- c("10.1038/nature12345", "10.1016/j.cell.2023.01.001")

get_altmetric_score <- function(doi) {
  api_url <- paste0("https://api.altmetric.com/v1/doi/", doi)
  response <- GET(api_url)
  result <- content(response, "parsed")
  return(list(doi = doi, score = result$score %||% NA))
}

# 批量获取并整理结果
batch_results <- map_dfr(doi_list, get_altmetric_score)
print(batch_results)

内容的提问来源于stack exchange,提问作者iGada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:25:29