我在R中使用RIS包,以便从PubMed获取信息。 'Mesh'包函数允许我获得每个引文的MeSH术语。然而,它是一个List,包含一个数据框。 我想列出每个MeSH术语以及相应的引用ID(PMID)。 例如,我可以构造一个包含两个值的表:
table = cbind(ArticleId(MedlineObject),Mesh(MedlineObject))
第一列是char对象,第二列是包含数据帧的列表。如果第1栏内的值为“29145282”,第2栏的内容为“心肌病,肥厚症”,“综合模态疗法”和“诊断,鉴别”,我想获得:
"29145282","Cardiomyopathy, Hypertrophic"
"29145282","Combined Modality Therapy"
"29145282","Diagnosis, Differential"
我怎么能做到这一点?
答案 0 :(得分:1)
我想使用myeloma
作为medline object
的示例,因为我没有您的数据。 myeloma
是RISmed
包中的中间线数据。
首先按mapply
和cbind
将ID添加到列表中的所有数据框中:
MedList = mapply(cbind, "ID"=ArticleId(myeloma),Mesh(myeloma),SIMPLIFY = FALSE)
然后按do.call
和rbind
将所有列表合并到一个数据框中:
MedFrame = do.call("rbind",MedList)
你只需要改变骨髓瘤'在你自己的MedlineObject的代码中
答案 1 :(得分:0)
查看tidyr
和tibble
个软件包。请务必查看nest()
和unnest()
函数。没有可重复的例子,我无法给你更多的建议。
x = 1:5
data <- lapply(x, function(i){
data.frame(y = 1:5 * i)
})
temp = tibble::tibble(x, data)
temp
tidyr::unnest(temp)