-1

我正在尝试使用rentrez包中的不同功能从 NCBI 中提取数据。但是,我有一个问题,因为extract_from_esummary()rentrez 中的函数导致矩阵,其中列的文本在保存在.csv 文件中时被拆分为相邻的列(如图所示),因为“,”被识别为分隔符。

  library (rentrez)
  PM.ID <- c("25979833", "25667274","23792568","22435913")

p.data <- entrez_summary(db = "pubmed", id = PM.ID  )
pubrecord.table <- extract_from_esummary(esummaries = p.data ,
                                         elements = c("uid","title","fulljournalname",
                                                      "pubtype"))

在此处输入图像描述

从上面的图像示例中,在 Column PMID: 25979833 中,期刊名称拆分为延伸到下一列。European journal of cancer (Oxford在第 1 列中,然后England : 1990)在下一列中。当我做了一个dput(pubrecord.table)时,我明白分裂是因为单词是用逗号“,”分隔的。如何让 R 理解European journal of cancer (Oxford, England : 1990)属于同一列的内容?Title 和 Pubtype 字段的类似问题......其中长文本之间有一个逗号,而 R 将其打破为 csv 格式。如何清理数据以使数据位于适当的列中?

4

1 回答 1

1

我认为这看起来像extract_from_esummary. 我在 Github 上搜索了 package's issues 中的“comma”并得到了这个,上面写着:

这不是rentrez的问题,只是NCBI记录和R对象的属性。

在这种情况下,pubtype 字段的大小是可变的。

当您尝试编写矩阵时,它表示向量,就像您在 ( c(..., ...)) 中键入它们一样,它会添加一个逗号,从而破坏 csv 格式。

在这种情况下,您可以折叠向量并取消列出每个矩阵行以允许将它们写出

问题页面也有代码示例。

于 2015-10-12T16:44:39.917 回答