将功能应用于多个数据框并将结果存储在唯一的数据框中

时间:2019-10-22 09:24:55

标签: r dataframe

我有360个数据框(每个数据框包含一列带有物种名称的列),名称为“ sp_i_j”,其中i从1到30(对应于30个样本),j从1到12(对应于每个样本12个重复)-> sp_1_1,sp_1_2,...,sp_30_11,sp_30_12。

例如,sp_1_1就是这样:

>sp_1_1
                       species
1       Cynoglossus bilineatus
2         Denticeps clupeoides
3         Gnathopogon imberbis
4     Grasseichthys gabonensis
5              Howella brodiei

sp_2_1看起来像这样:

> sp_2_1
                         species
1           Acipenser fulvescens
2  Acrossocheilus stenotaeniatus
3               Allocyttus niger
4          Anguilla celebesensis
5              Aulopyge huegelii

我还有其他30个名为“ species_s1”到“ species_s30”的数据框,也仅包含具有种类名称的一列。

species_s1就是这样:

> species_s1
                       species
1    Pseudaspius leptocephalus
2         Denticeps clupeoides
3              Howella brodiei
4  Microphysogobio tafangensis
5      Semotilus atromaculatus
6     Grasseichthys gabonensis

and species_s2就是这样:

> species_s2
                           species
1                Geotria australis
2           Odontamblyopus rebecca
3           Neocyttus rhomboidalis
4                      Tinca tinca
5                Aulopyge huegelii
6           Rastrelliger kanagurta

我要将以下功能应用于所有360个数据框:

TP <- nrow(inner_join(sp_1_1, species_s1))

以便将所有以“ sp_1_”开头的数据帧与“ species_s1”进行比较,以“ sp_2_”开头的数据帧与“ species_s2”进行比较,依此类推。

我想将结果存储在30列(对应于样本)和12行(对应于重复项)的唯一数据框中。以便将df“ sp_1_1”与“ sp_1_12”与“ species_s1”的比较结果存储在第一列的12行中; df“ sp_2_1”与“ sp_2_12”与“ species_s2”的比较结果将存储在第二列的12行中;等等。

我尝试过类似的事情:

for (i in 1:30) {
  for (j in 1:12) {
    TP[i,j] <- nrow(inner_join(sp_[i]_[j], species_s[i]))
  }
}

但是显然那是行不通的。

有什么建议吗?

0 个答案:

没有答案