根据两个数据帧中两个现有列之间的匹配来添加频率

时间:2016-10-15 06:26:43

标签: r

我有两个数据框 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 

1 个答案:

答案 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