[英]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.