计算与另一个数据框中的索引匹配的行

时间:2017-04-20 16:06:15

标签: r

我有两个数据框。

第一个描述了一组住户:

#df1
street   house     etc
     1       1     ...
     1       2     ...
     2       1     ...
     2       2     ...
     2       3     ... 
     3       1     ...

第二个描述住在这些房子里的人

#df2
street   house   person     etc
     1       1        1     ...
     1       1        2     ...
     1       2        1     ...
     1       2        2     ...
     1       2        3     ...
     3       1        1     ...

我想在df1中添加一个名为“member_count”的新列,并使用df2中与“street”和“house”匹配的行数填充此列。使用基础R实现此目的的最可读方式是什么?

2 个答案:

答案 0 :(得分:1)

在基础R中,也许最简单的方法是

df1$membercount <- mapply(function(s,h) nrow(df2[df2$street==s & df2$house==h,]),
                           df1$street,df1$house)

df1
  street house membercount
1      1     1           2
2      1     2           3
3      2     1           0
4      2     2           0
5      2     3           0
6      3     1           1

答案 1 :(得分:1)

{{1}}