在R中创建bib_文本引用?

在R中创建bib_文本引用?,r,citations,R,Citations,在R中使用帮助函数有时会包含类似APA格式的引用。例如,igraph中的closeness函数具有 ?closeness Freeman, L.C. (1979). Centrality in Social Networks I: Conceptual Clarification. Social Networks, 1, 215-239. 我用RMarkdown写作,希望使用R为这篇引文创建一个Bibtext风格的格式(即,不从其他来源获取)。这可能吗 例如,以下函数: cit <- s

在R中使用帮助函数有时会包含类似APA格式的引用。例如,
igraph
中的
closeness
函数具有

?closeness
Freeman, L.C. (1979). Centrality in Social Networks I: Conceptual Clarification. Social Networks, 1, 215-239.
我用RMarkdown写作,希望使用R为这篇引文创建一个
Bibtext
风格的格式(即,不从其他来源获取)。这可能吗

例如,以下函数:

cit <- some_function('Freeman, L.C. (1979). Centrality in Social Networks I: 
 Conceptual Clarification. Social Networks, 1, 215-239.')

cit 

@article{freeman1978conceptual,
  title={conceptual clarification.” Social Networks},
  author={Freeman, Linton C},
  journal={“Centrality in social networks},
  volume={1},
  number={3},
  pages={215--239},
  year={1978}
}

cit有一个函数,它可以刮取文档

在它的帮助下,您可以将所需的信息放入向量中

vec <- getHTMLhelp(closeness, package="igraph")[102:103]
结果

@article{freeman1979centrality,
title={社交网络的中心性I:概念澄清},
作者{Freeman,L.C},
日志={社交网络},
卷={1},
页码={215-239},
年份={1979}
}

当然,这与您的示例特别相关,需要进一步推广。

我认为这是不可能的。文档中给出的引用只是字符串,可以由包作者自由格式化。因此,无法一致地解析引用。
string <- gsub("<[^>]*>","", paste(vec, collapse=""))
rw <- t(strsplit(string, "\\. ")[[1]])
yr <- gsub("\\D", "", rw[2])
ref <- paste0(strsplit(tolower(rw[1]), ",")[[1]][1], yr,
              strsplit(tolower(rw[3]), " ")[[1]][1])
jrnl <- strsplit(rw[4], ", ")[[1]]
cat(paste0("@article{", ref,"," ,
           "\n\ttitle={", rw[3], "},",
           "\n\tauthor={", rw[1], "},",
           "\n\tjournal={", jrnl[1], "},",
           "\n\tvolume={", jrnl[2], "},",
           "\n\tpages={", gsub("\\.", "", jrnl[3]), "},",
           "\n\tyear={", yr, "}",
           "\n}"
))