R 需要基于两个数据帧中的公共变量,使用来自不同大小数据帧的两列创建丰度值
我有两个数据帧“Phylum.MYS”(68 x 5)和“Benthic”(13 x 5) 我的目标是在“Phylum.MYS”-->“Phylum.MYS$abundace”中创建一个“丰度”列 此列将保存“Phylum.MYS$Phylum”中每个变量的丰度值,方法是根据“Phlyum$Month\u year”==“Benthic$Month\u year.y”执行-->“Phylum.MYS$count”/“Benthic$count” 谢谢你的帮助R 需要基于两个数据帧中的公共变量,使用来自不同大小数据帧的两列创建丰度值,r,dataframe,summarize,R,Dataframe,Summarize,我有两个数据帧“Phylum.MYS”(68 x 5)和“Benthic”(13 x 5) 我的目标是在“Phylum.MYS”-->“Phylum.MYS$abundace”中创建一个“丰度”列 此列将保存“Phylum.MYS$Phylum”中每个变量的丰度值,方法是根据“Phlyum$Month\u year”==“Benthic$Month\u year.y”执行-->“Phylum.MYS$count”/“Benthic$count” 谢谢你的帮助 > head(Phylum.M
> head(Phylum.MYS)
Month_Year Phylum Count Salinity Date
1 2000-06 Nemertea 6 18.27130 Jun-2000
2 2000-06 Phoronida 2 18.27130 Jun-2000
3 2000-06 Annelida 45 18.27130 Jun-2000
4 2000-06 Arthropoda 9 18.27130 Jun-2000
5 2000-06 Mollusca 2 18.27130 Jun-2000
6 2000-09 Nemertea 2 20.72727 Sep-2000
> head(Benthic)
Date Month_Year.x Salinity Month_Year.y Count
1 Jun-2000 2000-06 18.27130 2000-06 66
2 Sep-2000 2000-09 20.72727 2000-09 61
3 Jun-2001 2001-06 18.33818 2001-06 62
4 Sep-2001 2001-09 20.95091 2001-09 115
5 Jun-2002 2002-06 20.74917 2002-06 65
6 Jun-2003 2003-06 15.62000 2003-06 81
这就是你要找的吗
library(data.table)
Phylum.MYS <- data.table(Month_Year = c('2000-06','2000-06','2000-06','2000-06','2000-06','2000-09'),
Phylum = c('Nemertea','Phoronida','Annelida','Arthropoda','Mollusca','Nemertea'),
Count = c(6,2,45,9,2,2))
Benthic <- data.table(Month_Year.y = c('2000-06','2000-09','2001-06','2001-09','2002-06','2003-06'),
Count = c(66,61,62,115,65,81))
Phylum.MYS <- merge(Phylum.MYS, Benthic, by.x = 'Month_Year', by.y = 'Month_Year.y',all = TRUE)
Phylum.MYS[, abundance := (Count.x/Count.y)]
Phylum.MYS
库(data.table)
MYS门