如何使用for循环绑定从web抓取中获得的多个数据帧



所以我有一个向量,它基本上是一个物种列表,比如:

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中的物种名称下载的所有数据帧的总和。但我得到的是一个带有一个观察值的数据帧,所以代码中一定有问题。

由于要将其应用于多个物种,因此需要对它们进行循环。

您可以使用purrrmap函数。

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

最新更新