保存XMLInternalDocument以便将来使用

时间:2018-07-16 03:07:49

标签: r xml save

我正在使用rentrez来挖掘PubMed。我想使用saveRDS()保存下载的XML数据,因为我的实际搜索量约为10k,并且要花一些时间。我可以使用entrez_search()进行初始搜索,并可以使用entrez_fetch()下载数据。当我将结果打印到控制台时,它看起来像预期的那样。

##  load needed packages
library(rentrez)
library(XML)
library(dplyr)
##  set search term and search name for saves
term_set = "transcription AND enhancer AND promoter AND 2018[PDAT]"
search_name = "tNeNpN19982018"
retmax_set = 500
##  search PubMed
search <- entrez_search(
    db = "pubmed", 
    term = term_set, 
    use_history = T
)
##  download full XML data for references
XML_refs <- entrez_fetch(
    db = "pubmed", 
    web_history = search$web_history, 
    rettype = "xml", 
    parsed = TRUE
)
XML_refs
  <PubmedArticle>
    <MedlineCitation Status="In-Data-Review" Owner="NLM">
      <PMID Version="1">28516428</PMID>
      <DateRevised>

saveRDS()写出一个文件,但只有1kb。当我用XML_refs删除旧的rm()并尝试使用loadRDS()加载数据时,R崩溃,并给我下面的错误。

##  write out XML refs as an R data object
saveRDS(XML_refs, paste0(search_name, "_XML_refs.rds"))
rm(XML_refs)
##  read back in the XML refs
readRDS("tNeNpN2018_XML_refs.rds")
  • R会话已终止
  • R遇到致命错误。
  • 会话已终止。
  • 开始新会话

我在做什么错?有趣的是,如果我在运行上面的saveRDS()代码(将工作区图像保存到.RData之后退出R,然后重新启动R,则RStudio环境窗格中列出的XML_refs的值将从External pointer of class XMLInternalDocument<Object with null pointer>。保存这些XML对象是不可能的吗?

0 个答案:

没有答案