所以我有一个向量,它基本上是一个物种列表,比如:
list_species<-c("Pomphorhynchus laevis","Profilicollis altmani","Leptorhynchoides thecatus","Mayarhynchus karlae","Oligacanthorhynchus tortuosa","Pseudoacanthocephalus toshimai","Corynosoma australe")
我有这个功能,它为每个物种挖掘几个样本的数据:
library(bold)
df<-bold_seqspec(name_of_species, format = "tsv")
我想使用bold_seqspec函数为listrongpecies中的每个元素创建一个数据帧,到目前为止我尝试过这样做:
for (name_of_species in list_species){
df<-bold_seqspec(name_of_species, format = "tsv")
joined_dfs<-rbind(df)
}
我想要的是一个数据帧,它是为listrongpecies中的物种名称下载的所有数据帧的总和。但我得到的是一个带有一个观察值的数据帧,所以代码中一定有问题。
由于要将其应用于多个物种,因此需要对它们进行循环。
您可以使用purrr
的map
函数。
joined_dfs <- purrr::map_df(list_species, bold::bold_seqspec)
尝试
do.call(rbind, lapply(list_species, bold_seqspec, format = "tsv"))
说明:lapply(list_species, bold_seqspec, format = "tsv")
循环通过list_species
,并将bold_seqspec
应用于参数为format = "tsv"
的每个元素。返回对象是bold_seqspec
返回对象中的list
;假设它们是data.frame
,则可以将它们与do.call(rbind, ...)
行绑定,生成单个data.frame
。