R中的Excel SUMIFS等价物

Bar*_*by1 6 r sumifs

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

我有以下数据框,我想计算一个新列.新列是SampleStart DateEndDate范围重叠的所有行的总和.例如,在线1它将是697(第一个的总和3 lines).具体的标准是:包括SampleifEndDate >= 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 
Run Code Online (Sandbox Code Playgroud)

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

Sto*_*ica 1

假设您在名为 的数据框中有上述数据df

sum(df$Sample[EndDate >= df$StartDate & StartDate <= df$EndDate])
Run Code Online (Sandbox Code Playgroud)

那是:

  • df$Sample[...]选择Sample列,条件指定在[...]
  • EndDate >= df$StartDateStartDate <= df$EndDate来自您的示例,转换为 R 条件,介于&两者之间要求两个条件同时为真。i请注意,表达式中没有索引。这就是 R 中的工作方式,对数据框中的每一行计算表达式,结果df$Sample[...]是一个值向量,只有表达式为[...]true 的值
  • sum当然是一个内置函数来计算总和,自然