在R中创建一个新的数据帧,该数据帧是对其他两个不同长度数据库中不同顺序列的比较结果



我有这两个数据帧CDD26_FF(5593行(和CDD_HI(5508行(,它们的结构(列(如下。CDD是";连续干燥日";,两个表显示了物种在遥远的未来(FF(和历史时期(HI(暴露于CDD。

我只想把重点放在";Biom";以及";规格名称"列。

正如你所看到的,这两张表有相同的";规范名称"并且相同的";Biom";(世界上有萨马气候条件的地区("Biom";值从0到15。顺便说一下;规格名称"不总是出现在两个表中(例如Abromoco-ben(;此外,这两个表并不总是具有"的组合;规格名称"以及";Biom";(组合只是属于该生物的同一物种的种群(

CDD26_FF:

>>reaCellSuAreaTotal>8>>Abrocomo_cin>td style="ext-align:centre">Abrothrix_lo
CDD26_FF AreaCell Area_tomalBiomSpecies_name
1 13 10
1 1
1Abrocomo_cin
1 10 10
1 2 1 Abrothrix_an
1 14 10
1 3 6 2 1 17 12

您可以使用内部联接(由dplyr提供(。内部联接返回表/data.frame中存在的并且具有匹配条件(在这种情况下:匹配"Biom"one_answers"Species_name"(的所有数据集。

随后,使用mutate:可以很容易地计算出一些比率

library(dplyr)
cdd26_f %>%
inner_join(cdd_hi, by=c("Biom", "Species_name")) %>%
mutate(ratio = AreaCellSuAreaTotal/AreaCellSuAreaTot_HI) %>%
select(Biom, Species_name, ratio)

返回

# A tibble: 4 x 3
Biom Species_name ratio
<dbl> <chr>        <dbl>
1     1 Abrocomo_cin 1    
2    10 Abrocomo_cin 0.200
3     1 Abrothrix_an 2    
4    10 Abrothrix_an 1  

注意:如果需要所有列或为其他列操作select-部分,请删除它。

数据

cdd26_f <- readr::read_table2("CDD26_FF     AreaCell    Area_total  Biom    Species_name    AreaCellSuAreaTotal
1   1   13  10  Abrocomo_ben    0.076923
1   1   8   1   Abrocomo_cin    0.125000
1   1   30  10  Abrocomo_cin    0.033333
1   2   10  1   Abrothrix_an    0.200000
1   1   44  10  Abrothrix_an    0.022727
1   3   6   2   Abrothrix_je    0.500000
1   1   7   12  Abrothrix_lo    0.142857")
cdd_hi <- readr::read_table2("CDD_HI    AreaCell    Area_total  Biom    Species_name    AreaCellSuAreaTot_HI
1   1   8   1   Abrocomo_cin    0.125000
1   5   30  10  Abrocomo_cin    0.166666
1   1   5   2   Abrocomo_cin    0.200000
1   1   10  1   Abrothrix_an    0.100000
1   1   44  10  Abrothrix_an    0.022727
1   6   18  1   Abrothrix_je    0.333333
1   1   23  4   Abrothrix_lo    0.130434")

相关内容

  • 没有找到相关文章

最新更新