Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中dataframe内部的dataframe内部列表中提取行_R_Packages_Pubmed - Fatal编程技术网

从R中dataframe内部的dataframe内部列表中提取行

从R中dataframe内部的dataframe内部列表中提取行,r,packages,pubmed,R,Packages,Pubmed,为了从PubMed获取信息,我在R中使用包RISmed。“网格”包函数允许我获取每个引用的网格术语。然而,它是一个列表,包含一个数据帧。 我想列出每个网格术语及其相应的引用id(PMID)。 例如,我可以构造一个包含两个值的表: table = cbind(ArticleId(MedlineObject),Mesh(MedlineObject)) 第一列是一个char对象,但第二列是一个列表,包含一个dataframe。如果第1列中的值为“29145282”,第2列中的内容为“心肌病,肥大”,

为了从PubMed获取信息,我在R中使用包RISmed。“网格”包函数允许我获取每个引用的网格术语。然而,它是一个列表,包含一个数据帧。 我想列出每个网格术语及其相应的引用id(PMID)。 例如,我可以构造一个包含两个值的表:

table = cbind(ArticleId(MedlineObject),Mesh(MedlineObject))
第一列是一个char对象,但第二列是一个列表,包含一个dataframe。如果第1列中的值为“29145282”,第2列中的内容为“心肌病,肥大”,“联合治疗”和“诊断,鉴别”,我希望获得:

"29145282","Cardiomyopathy, Hypertrophic"
"29145282","Combined Modality Therapy"
"29145282","Diagnosis, Differential"

我怎样才能做到这一点呢?

请查看
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)
x=1:5

数据我想用
骨髓瘤
作为
medline对象
的一个例子,因为我没有你的数据
myeloma
RISmed
软件包中的医疗数据

首先通过
mappy
cbind
将id添加到列表中的所有数据帧:

MedList = mapply(cbind, "ID"=ArticleId(myeloma),Mesh(myeloma),SIMPLIFY = FALSE)
MedFrame = do.call("rbind",MedList)
然后通过
do将所有列表合并到一个数据帧中。调用
rbind

MedList = mapply(cbind, "ID"=ArticleId(myeloma),Mesh(myeloma),SIMPLIFY = FALSE)
MedFrame = do.call("rbind",MedList)

您只需将代码中的“骨髓瘤”更改为您自己的MedlineObject

请尝试提供。至少包括生成
MedlineObject
的代码。另外,
table
不是一个很好的变量名(有一个同名函数)。嗨,neilfws,下面@TooYoung使用的例子很好。“table”确实不是一个好的变量名。这不是真的,只是一个例子。谢谢你让我听你这么说。你介意接受这个答案吗?我不能发表评论