簡體   English   中英

R 中的條件 sum / sumifs

[英]Conditional sum / sumifs in R

我想根據日期將表 B 中的度量計數保留到表 A 上。

前任。 表A:

成員 A.DateBeg A.DateEnd
001 202001 202012
001 202101 202112
003 202001 202012
003 202101 202112

表B:

B.會員 B.日期 B.計數
001 202011 5
001 202102 7
001 202103 3
003 202007 4
003 202011 2
003 202012 3

我想要做的基本上是一個 left_join 和 sum 或 summarise ,其中 by 是一個條件語句。

類似於: Sum(B.Count) Where B.Date >= A.DateBeg AND B.Date < A.DateEnd

我在想類似的事情:

TableC <- left_join(TableA, TableB, by = c("A.Member" = "B.Member", "B.Date" >= "A.DateBeg" & "B.Date < "A.DateEnd"), sum(B.Count))

結果 TableC 應如下所示:

成員 A.DateBeg A.DateEnd Sum(B.Count)
001 202001 202012 12
001 202101 202112 3
003 202001 202012 9
003 202101 202112 0

真的卡在這個了。

這可以。 fuzzyjoin完成

library(fuzzyjoin)
library(dplyr)
fuzzy_left_join(TableA, TableB,
   by = c("A.Member" = "B.Member", "A.DateBeg" = "B.Date",   
       "A.DateEnd" = "B.Date"), 
   match_fun = list(`==`, `<=`, `>`)) %>% 
 group_by(A.Member, A.DateBeg, A.DateEnd) %>% 
 summarise(Sum = sum(B.Count, na.rm = TRUE),  .groups = 'drop')

暫無
暫無

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

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