我有两个数据框 df1 和 df2
df1=data.frame(species=c("Natica", "Turritela", "Anadara", "Arca", "Murex", "Tellina"),
freq=c(20,2,5,40,12,3))
df2=data.frame(species=c("Natica","Tellina"),freq=c(12,2))
我想仅在df1的第一列与df2匹配时才将df2的freq值添加到df1
所以我期待这样的输出:
我的df1应该提供以下输出:
species freq
1 Natica 32
2 Tureitella 2
3 Anadara 5
4 Arca 40
5 Murex 12
6 Tellina 5
答案 0 :(得分:0)
您可以做的是以下内容:
只要df2
中包含df1
的所有值且不需要包,就可以使用此功能。
df1[!is.na(match(df1$species,df2$species)),]$freq <- df1[!is.na(match(df1$species,df2$species)),]$freq + df2$freq
> df1
species freq
1 Natica 32
2 Turritela 2
3 Anadara 5
4 Arca 40
5 Murex 12
6 Tellina 5