gpt4 book ai didi

r - R 中的 Excel SUMIFS 等效项

转载 作者:行者123 更新时间:2023-12-03 04:21:03 26 4
gpt4 key购买 nike

我对 R 非常陌生,正在寻找重新创建 Excel VBA 宏和 Excel 工作表函数(例如 SUMIFS)的方法。如果该行具有与其他列上的多个条件匹配的条目,SUMIFS 将对列求和。

我有以下数据框,我想计算一个新列。新列是 Sample 的总和对于与 Start Date 重叠的所有行和EndDate范围。例如在线 1它将是 697 (第一个 3 lines 的总和)。总和的标准具体为:包括 Sample如果EndDate >= StartDate[i] & StartDate <=EndDate[i]

 StartDate   EndDate    Sample  *SUMIFS example*
10/01/14 24/01/14 139 *697*
12/01/14 26/01/14 136
19/01/14 02/02/14 422
25/01/14 08/02/14 762
29/01/14 12/02/14 899
05/02/14 19/02/14 850
07/02/14 21/02/14 602
09/02/14 23/02/14 180
18/02/14 04/03/14 866

任何评论或指示将不胜感激。

最佳答案

您可以使用 base R 中的 lapply/sapply 来执行此操作。 x 来自 @cameron.bracken 的帖子。

x$sumifs <- sapply(seq_len(nrow(x)), function(i) with(x, 
sum(Sample[EndDate >= StartDate[i] & StartDate <= EndDate[i]])))

x
# StartDate EndDate Sample sumifs
#1 2014-01-10 2014-01-24 139 697
#2 2014-01-12 2014-01-26 136 1459
#3 2014-01-19 2014-02-02 422 2358
#4 2014-01-25 2014-02-08 762 3671
#5 2014-01-29 2014-02-12 899 3715
#6 2014-02-05 2014-02-19 850 4159
#7 2014-02-07 2014-02-21 602 4159
#8 2014-02-09 2014-02-23 180 3397
#9 2014-02-18 2014-03-04 866 2498

关于r - R 中的 Excel SUMIFS 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26720897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com