我对R非常陌生,正在寻找重建Excel VBA宏和Excel工作表函数(如SUMIFS)的方法.如果行的条目与其他列上的多个条件匹配,则SUMIFS会对列求和.
我有以下数据框,我想计算一个新列.新列是Sample与Start Date和EndDate范围重叠的所有行的总和.例如,在线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)
任何评论或指示将不胜感激.
假设您在名为 的数据框中有上述数据df:
sum(df$Sample[EndDate >= df$StartDate & StartDate <= df$EndDate])
Run Code Online (Sandbox Code Playgroud)
那是:
df$Sample[...]选择Sample列,条件指定在[...]EndDate >= df$StartDate和StartDate <= df$EndDate来自您的示例,转换为 R 条件,介于&两者之间要求两个条件同时为真。i请注意,表达式中没有索引。这就是 R 中的工作方式,对数据框中的每一行计算表达式,结果df$Sample[...]是一个值向量,只有表达式为[...]true 的值sum当然是一个内置函数来计算总和,自然