在`R`中修改`citation`对象

时间:2017-08-01 07:58:20

标签: r attributes bibtex citations

我正在尝试修改R中的cit <- citation("ggplot2") cit$textVersion #[1] "H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2009." cit$textVersion <- "Hadley Wickham and Winston Chang (2016). ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics. R package version 2.2.1." 对象,如下所示

cit$textVersion
#[1] "H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2009."

但没有变化。

cit

如果我们检查textVersion的结构,现在有两个textVersion属性。如何单独修改原始str(cit) List of 1 $ :Class 'bibentry' hidden list of 1 ..$ :List of 6 .. ..$ author :Class 'person' hidden list of 1 .. .. ..$ :List of 5 .. .. .. ..$ given : chr "Hadley" .. .. .. ..$ family : chr "Wickham" .. .. .. ..$ role : NULL .. .. .. ..$ email : NULL .. .. .. ..$ comment: NULL .. ..$ title : chr "ggplot2: Elegant Graphics for Data Analysis" .. ..$ publisher: chr "Springer-Verlag New York" .. ..$ year : chr "2009" .. ..$ isbn : chr "978-0-387-98140-6" .. ..$ url : chr "http://ggplot2.org" .. ..- attr(*, "bibtype")= chr "Book" .. ..- attr(*, "textVersion")= chr "H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2009." .. ..- attr(*, "textversion")= chr "Hadley Wickham and Winston Chang (2016). ggplot2: Create Elegant Data Visualisations Using\n the Grammar of Gr"| __truncated__ - attr(*, "mheader")= chr "To cite ggplot2 in publications, please use:" - attr(*, "class")= chr "bibentry"

MySQL

1 个答案:

答案 0 :(得分:2)

不会修改citation个对象。子集运算符($[,还有$<-)是特定的,不允许轻松修改。这是有原因的:citation信息写在包的特定文件中,并且不被认为是被修改的。 我不知道你为什么要这样做,但如果你真的需要,这里有点破解。

#store the class of the object, so can be reassigned later
oc<-class(cit)
#unclass the object to be free to modify
tmp<-unclass(cit)
#assign the new "textVersion"
attr(tmp[[1]],"textVersion")<-"Hadley Wickham and Winston Chang (2016). ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics. R package version 2.2.1."
#assign the class back
class(tmp)<-oc
tmp
#To cite ggplot2 in publications, please use:
#
#  Hadley Wickham and Winston Chang (2016). ggplot2: Create Elegant Data
#  Visualisations Using the Grammar of Graphics. R package version
#  2.2.1.
#
#A BibTeX entry for LaTeX users is
#
#  @Book{,
#    author = {Hadley Wickham},
#    title = {ggplot2: Elegant Graphics for Data Analysis},
#    publisher = {Springer-Verlag New York},
#    year = {2009},
#    isbn = {978-0-387-98140-6},
#    url = {http://ggplot2.org},
#  }