我有一个数据框(下面)
{ a<-as.data.frame(entrez_db_searchable(db = "pubmed", config = NULL)) }
Name FullName
1 ALL All Fields
2 UID UID
3 FILT Filter
4 TITL Title
5 WORD Text Word
6 MESH MESH Terms
MeSH条款
我想访问a$FullName
中的所有元素。结果看起来像列表的列表。
$ALL
[1] "All Fields"
$UID
[1] "UID"
$FILT
[1] "Filter"
依旧......
我正尝试以下列格式访问列表中的扩展条款,但未成功
a <- some_simple_function(df$FullName)
打印(一)
存储在1x1列中的扩展术语的输出(每个术语的每一行)。
Full Name
1 All Fields
2 UID
3 Filter
4 Title
5 MeSH Terms
依旧.....
如果有人能帮助我,我感激不尽。
注意:我尝试了以下内容
1)for循环。 (更喜欢看看是否有比循环更好的方法)
2)do.call("paste", c(a$FullName, sep = "\n"))
粘贴无法识别新行&#34; \ n&#34;论点。
3)cat(do.call("paste", c(a$FullName, sep = "\n")))
,打印出我正在寻找的确切输出,但它是一个打印语句。我需要将输出存储在另一个变量中。
答案 0 :(得分:1)
我无法让您的示例数据框架正常工作,但这对我有用:
library(rentrez)
a<-as.data.frame(entrez_db_searchable(db = "pmc", config = NULL))
为了处理a$FullName
返回1元素向量列表的事实,您可以使用unlist
来获取名称的向量:
data.frame(FullName=unlist(a[,"FullName"]))
# FullName
# ALL All Fields
# UID UID
# FILT Filter
# PMID PubMed ID
# AUTH Author
# ...
答案 1 :(得分:0)
https://purrr.tidyverse.org/reference/flatten.html
flatten()
是完成unlist()
这应该有效:
a %>%
transmute(
FullName = flatten_chr(FullName)
)