首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for循环中为多个变量赋值

在for循环中为多个变量赋值
EN

Stack Overflow用户
提问于 2019-09-23 04:23:28
回答 1查看 43关注 0票数 1

我有一段重复7次的代码,我正在尝试压缩代码。我正在尝试运行一个函数,而raw_data_*文件是数据帧。这就是我想要实现的(未压缩代码):

代码语言:javascript
复制
tax_1 <- count_taxa(raw_data_1, "Site_1", "Domain", domain_n)
tax_2 <- count_taxa(raw_data_2, "Site_2", "Domain", domain_n)
tax_3 <- count_taxa(raw_data_3, "Site_3", "Domain", domain_n)
tax_4 <- count_taxa(raw_data_4, "Site_4", "Domain", domain_n)
tax_5 <- count_taxa(raw_data_5, "Site_5", "Domain", domain_n)
tax_6 <- count_taxa(raw_data_6, "Site_6", "Domain", domain_n)
tax_7 <- count_taxa(raw_data_7, "Site_7", "Domain", domain_n)
all_tax <- bind_rows(tax_1, tax_2, tax_3, tax_4, tax_5, tax_6, tax_7)

我正在尝试这样做:

代码语言:javascript
复制
tax_list <- list(raw_data_1, raw_data_2, raw_data_3, raw_data_4, raw_data_5, raw_data_6, raw_data_7)
site_list <- list("Site_1", "Site_2", "Site_3", "Site_4", "Site_5", "Site_6", "Site_7")

for (tax in tax_list) {

  tax_1 <- count_taxa(tax, site, domain_n)
????

}
all_tax <- bind_rows(tax_1, tax_2, tax_3, tax_4, tax_5, tax_6, tax_7)

但我甚至不知道这是否可能。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-23 04:43:03

您可以创建一个空列表,然后随着循环的进行向其中添加数据框。最后,您可以使用Reduce将它们全部绑定到all_tax中。

代码语言:javascript
复制
tax_list <- list(raw_data_1, raw_data_2, raw_data_3, raw_data_4, raw_data_5, raw_data_6, raw_data_7)
site_list <- list("Site_1", "Site_2", "Site_3", "Site_4", "Site_5", "Site_6", "Site_7")

proc_df <- list()

for (i in seq_along(tax_list)) {
  proc_df <- c(proc_df, count_taxa(tax_list[[i]], site_list[[i]], domain_n))
}

all_tax <- Reduce(rbind, proc_df)

另一种方法是使用purrr中的map2_dfr函数

代码语言:javascript
复制
purrr::map2_dfr(tax_list, site_list, count_taxa, domain_n)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58053107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档