R:在DataFrame中逐行计数满足多个条件的观察值

巴斯特先生

我有一个具有商店,产品和日期的Summary_Table。我需要创建第4列,该列对在Summary_Table的每行中满足多个条件的Records_table中的观察次数进行计数。

这是我的汇总表。

> Summary_Table
Store   Product Date
Chain1  ABC     1/1/2007
Chain1  ABC     1/1/2008
Chain1  ABC     1/1/2009
Chain1  ABC     1/1/2010
Chain1  DEF     1/1/2007
Chain1  DEF     1/1/2008
Chain1  DEF     1/1/2009
Chain1  DEF     1/1/2010
Chain2  ABC     1/1/2007
Chain2  ABC     1/1/2008
Chain2  ABC     1/1/2009
Chain2  ABC     1/1/2010
Chain2  DEF     1/1/2007
Chain2  DEF     1/1/2008
Chain2  DEF     1/1/2009
Chain2  DEF     1/1/2010

这是我的记录表

> Records_Table
Store   Product Eval_Date
Chain1  DEF     2/13/2008
Chain2  ABC     1/15/2009
Chain1  DEF     5/13/2009
Chain2  ABC     3/15/2007
Chain1  DEF     5/14/2010
Chain2  DEF     10/10/2010
Chain1  ABC     11/1/2007
Chain2  ABC     10/1/2008
Chain2  DEF     6/1/2009
Chain2  DEF     7/1/2010
Chain2  ABC     8/1/2009
Chain1  ABC     2/1/2009

因此,我需要在“摘要”表中创建第4列,以对“记录”表中的观察次数进行计数。汇总表的每一行都满足以下条件。

商店应该相等,产品应该相等,并且对于日期;如果(Records_Table $ Eval_Date)大于(Summary_Table $ Date)。

所以我在Summary_Table中所需的输出是

> Summary_Table
Store   Product Date      Count
Chain1  ABC     1/1/2007    2
Chain1  ABC     1/1/2008    1
Chain1  ABC     1/1/2009    1
Chain1  ABC     1/1/2010    0
Chain1  DEF     1/1/2007    3
Chain1  DEF     1/1/2008    3
Chain1  DEF     1/1/2009    2
Chain1  DEF     1/1/2010    1
Chain2  ABC     1/1/2007    4
Chain2  ABC     1/1/2008    3
Chain2  ABC     1/1/2009    2
Chain2  ABC     1/1/2010    0
Chain2  DEF     1/1/2007    3
Chain2  DEF     1/1/2008    3
Chain2  DEF     1/1/2009    3
Chain2  DEF     1/1/2010    2
鲁沙卜·帕特尔(Rushabh Patel)

您可以left join使用以下data.table软件包:

library(data.table)
setDT(recdt)[,Eval_Date:=as.Date(Eval_Date,format="%m/%d/%Y")]
setDT(sumdt)[,Date:=as.Date(Date,format="%m/%d/%Y")]
recdt[sumdt,.N, on=c("Store","Product","Eval_Date>Date"), by=.EACHI]

输出-

    Store  Product Eval_Date  N
 1: Chain1     ABC 2007-01-01 2
 2: Chain1     ABC 2008-01-01 1
 3: Chain1     ABC 2009-01-01 1
 4: Chain1     ABC 2010-01-01 0
 5: Chain1     DEF 2007-01-01 3
 6: Chain1     DEF 2008-01-01 3
 7: Chain1     DEF 2009-01-01 2
 8: Chain1     DEF 2010-01-01 1
 9: Chain2     ABC 2007-01-01 4
10: Chain2     ABC 2008-01-01 3
11: Chain2     ABC 2009-01-01 2
12: Chain2     ABC 2010-01-01 0
13: Chain2     DEF 2007-01-01 3
14: Chain2     DEF 2008-01-01 3
15: Chain2     DEF 2009-01-01 3
16: Chain2     DEF 2010-01-01 2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算满足 R 中多个条件的行数

R. 如果满足条件,则删除 df 中的观察块

熊猫:满足多个条件时的条件计数

在两个不同的列中满足两个条件的观察值的百分比(以r表示)

r中的观察计数

SQL增量计数条件值逐行

在R中,多次检查多个值,对是否满足条件求和,跟踪位置,导出数据并重复

在R中如何计算一个值出现并满足多个条件的次数

计数行,直到满足条件之前在R-NA中满足条件

在熊猫DataFrame中查找满足多个逻辑(布尔)条件的组

如何获得r中的计数,直到满足特定值并继续

选择满足其他列中多个条件的列值

满足来自 querySelectorAll 的节点列表中的多个文本值的条件

删除值计数满足条件的列(熊猫)

每行不满足条件的值计数

对满足约束条件的值进行计数,对于SPARQL中不满足约束条件的值返回0

将计数转换为 r 中的单个观察值

如果满足多个条件,则将重复的单元格值计数为一个

R-在缺少值的Dataframe中逐行循环lm()

满足唯一条件,同时满足R(dplyr)中的多个条件

R函数对满足条件的行进行计数

如果满足条件,R在DF上逐行应用功能

一旦条件满足多个变量,则放弃观察

在满足R中条件的值上添加前缀

查找满足R中条件的下一行的值

仅满足R中条件的值的箱线图

如何基于DataFrame中的多个条件对事件进行计数

从R中的数据框中获取具有多个单个观察值的组级观察值

计算每组满足每行不同条件的观察值