我正在编写我的第一个R包,跟随Hadley Wickham关于该主题的出色book。上面链接的本书部分包含通过包的DESCRIPTION
文件添加作者的示例。
博士。 Wickham指出“full list of roles非常全面。如果你的包装有樵夫('wdc'),词作者('lyr')或服装设计师('cst'),你可以舒服地休息,你可以正确描述他们的角色在创建你的包。“
我遇到的问题是,只有具有“作者”角色的人才会被包含在citation()
的输出中 - 樵夫,词作者和服装设计师都不会。我希望我的包的非作者贡献者被包含在引文中,但不希望(错误地)将它们列为作者(即,具有“作者”/ aut
的角色)
例如,如果我在DESCRIPTION
文件中包含以下内容(csp
是listed as“项目顾问”):
Authors@R: c(
person("John", "Doe", email = "jdoe@example1.com", role = c("aut", "cre")),
person("Jane", "Smith", email = "jsmith@example2.com", role = "csp", comment = "Provided intellectual overview."))
... citation('mypackagename')
将提供以下内容:
To cite package ‘mypackagename’ in publications use:
John Doe (NA). mypackagename: My package description. R package version 0.1.0.
https://github.com/link/to/mypackagename
A BibTeX entry for LaTeX users is
@Manual{,
title = {mypackagename: My package description},
author = {John Doe},
note = {R package version 0.1.0},
url = {https://github.com/link/to/mypackagename},
}
此外,?mypackagename
在“作者”下为贡献者返回[NA]
:
Maintainer: John Doe jdoe@example1.com
Other contributors:
Jane Smith jsmith@example2.com (Provided intellectual overview.) [NA]
似乎要解决这个问题,Hmisc
文件中的DESCRIPTION
包uses the following的作者:
Author: Frank E Harrell Jr <f.harrell@vanderbilt.edu>, with
contributions from Charles Dupont and many others.
如何强制R在citation()
输出中包含非作者贡献者(其他角色)? Hmisc
作者的方法在这里最好吗?看起来这可能会破坏Authors@R
提供的干净的元数据解析,所以我对使用这种方法犹豫不决。
我会感激任何指针!
答案 0 :(得分:1)
您不能在citation()
输出中包含其他角色。检查the source of citation()
,它只解析作者字段,源代码中甚至还有一个注释:
## <NOTE>
## Older versions took persons with no roles as "implied" authors.
## Now we only use persons with a name and a 'aut' role. If there
## are none, we use persons with a name and a 'cre' role.
## If this still gives nothing (which really should not happen), we
## fall back to the plain text Author field.
## Checking will at least note the cases where there are no persons
## with names and 'aut' or 'cre' roles.
因此,包含其他角色的唯一方法是使用纯文本描述,如Hmisc包的示例。