我正在尝试使用rentrez
包中的不同函数从NCBI中提取数据。但是,我有一个问题,因为rentrez中的函数extract_from_esummary()
导致矩阵,当保存在.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"))
从上面的图像示例中,在列PMID:25979833中,期刊名称拆分为扩展到下一列。第1列为European journal of cancer (Oxford
,下一列为England : 1990)
。当我做一个dput(pubrecord.table)时,我明白分裂是因为单词用逗号“,”分隔。如何让R了解European journal of cancer (Oxford, England : 1990)
属于同一列?与Title和Pubtype字段类似的问题....其中长文本之间有逗号,R用csv格式打破它。如何清理数据以使数据位于适当的列中?
答案 0 :(得分:1)
我认为这看起来像extract_from_esummary
中的错误。我在Github上搜索了包的问题,以及#34;逗号&#34;得到this,其中说:
对于rentrez而言,这不是一个问题,只是NCBI记录和R对象的属性。
在这种情况下,pubtype字段的大小可变。
当您尝试编写矩阵时,它代表像您一样的向量(
c(..., ...)
),它们会添加一个逗号来破坏csv格式。在这种情况下,您可以折叠向量并取消列出每个矩阵行以允许它们被写出
问题页面也有代码示例。