簡體   English   中英

計算另一個數據幀中與索引匹配的行

[英]Count rows matching index in another data frame

我有兩個數據框。

第一個描述了一組住戶:

#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做到這一點的最易讀的方法是什么?

在基數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
tmpdf <- data.frame(table(df2$street, df2$house))
names(tmpdf) <- c("street", "house", "member_count")
df1 <- merge(df1, tmpdf, by = c("street", "house"), all.x = TRUE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM