2

我正在尝试获取不同 R 包的引用计数。我知道scholar使用 Google Scholar 来获取给定用户 ID 的出版物列表。

假设我们拥有的唯一信息来自citation("package"),有没有办法从 Google Scholar 获取这个包的引用计数?也许有包含此信息的元数据或执行此操作的包?

有一个类似的问题——Retrieve citations of a journal paper using R

但据我所见,citation("package")每个包看起来都不同,因此无法自动检索出版物标题。

4

1 回答 1

1

如果 R 包包含 bibtex 格式的引文,您可以提取标题,然后收集每个引用的引文,如您发布的链接所示。此示例提取 CRAN 上的所有包并检查引用信息:

library(httr)
library(RCurl)
library(XML)

urldata <- getURL("https://cran.r-project.org/web/packages/available_packages_by_date.html")
CRAN <- readHTMLTable(urldata,
                      stringsAsFactors = FALSE)
CRAN_packages <- CRAN[["NULL"]][[" Package "]]
packages_df <- as.data.frame(CRAN_packages,
                             stringsAsFactors = FALSE)
list_of_citations <- NULL

for (f in 1:nrow(packages_df)) {
  tryCatch({
    list_of_citations <<- append(list_of_citations,
                                 citation(package = packages_df$CRAN_packages[f],
                                          auto = TRUE))
    }, error=function(e){
      cat(paste("No citations available for package",
                packages_df$CRAN_packages[f],
                sep = " "),
          conditionMessage(e), "\n")
      })
}

list_of_citations$title

有趣的是,在 CRAN 上的 15,556 个软件包中,很少有格式正确的引用信息可用......其他人已经指出了这个问题(例如https://stat.ethz.ch/pipermail/r-devel/2010-November/058977 .html)但问题尚未解决(或者我的代码可能没有全部捕获)

于 2020-04-08T07:03:28.357 回答