通过按名称分组的data.table的最后销售日期和下一个销售日期

gibbz00

这是我的数据框的样子:

df <- read.table(text='

Name      ActivityType      ActivityDate      LastSaleDate    NextSaleDate     
John       Email            1/1/2014             NA              2/1/2014
John       Sale             2/1/2014             NA              3/1/2014
John       Sale             3/1/2014             2/1/2014        NA        
John       Seminar          4/1/2014             3/1/2014        NA  
John       Webinar          5/1/2014             3/1/2014        NA  
Tom        Email            1/1/2014             NA              2/1/2015
Tom        Sale             2/1/2015             NA              3/1/2015
Tom        Sale             3/1/2015             2/1/2015        NA  
Tom        Seminar          4/1/2015             3/1/2015        NA  
Tom        Webinar          5/1/2015             3/1/2015        NA
                                                                      ', header=T)

我正在尝试通过data.table导出最右边的两列。我正在查看ActivityType = Sale的位置,并找到该销售活动类型的上一个和下一个相应的活动日期一个相关的dplyr解决方案是

library(dplyr)
require(zoo)

df %>% 
  group_by(Name) %>% 
  mutate(LastSaleDate=na.locf(lag(ifelse(ActivityType=="Sale",ActivityDate,NA)),na.rm=FALSE))

非常感谢您的帮助。

坦率

这似乎可行,但是很混乱:

DT[,c("LastSaleDate", "NextSaleDate") := {
  w   = which(ActivityType=="Sale")
  lst = rep(c(NA, w ), diff(c(0, w, .N  )) )
  nxt = rep(c(w , NA), diff(c(1, w, .N+1)) )
  list(ActivityDate[lst], ActivityDate[nxt])
}, by=Name]


    Name ActivityType ActivityDate LastSaleDate NextSaleDate
 1: John        Email     1/1/2014           NA     2/1/2014
 2: John         Sale     2/1/2014           NA     3/1/2014
 3: John         Sale     3/1/2014     2/1/2014           NA
 4: John      Seminar     4/1/2014     3/1/2014           NA
 5: John      Webinar     5/1/2014     3/1/2014           NA
 6:  Tom        Email     1/1/2014           NA     2/1/2015
 7:  Tom         Sale     2/1/2015           NA     3/1/2015
 8:  Tom         Sale     3/1/2015     2/1/2015           NA
 9:  Tom      Seminar     4/1/2015     3/1/2015           NA
10:  Tom      Webinar     5/1/2015     3/1/2015           NA

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按月计数和按名称分组

来自分类Dev

如何通过在Java中传递当前日期来获取下一个日期

来自分类Dev

按给定日期获取上一个和下一个星期一的日期

来自分类Dev

在Elasticsearch中按日期获取上一个和下一个文档

来自分类Dev

通过按名称分组的data.table的最后销售日期和下一个销售日期

来自分类Dev

r-如何从分组数据和控制输出格式的最后一个日期条目中减去第一个日期条目

来自分类Dev

如何通过MWS / Amazon报告检索当前的销售价格和日期

来自分类Dev

调整下一个日期

来自分类Dev

通过按日期分组,然后按日期时间在NodeJS中分组来转换JSON

来自分类Dev

通过单击javascript 3值中的按钮将日期更改为下一个/上一个

来自分类Dev

通过一个查询中的数据像样条一样按日期分组

来自分类Dev

如何按下一个可用日期排序?

来自分类Dev

通过一个查询获取最后订单日期,总订单和总金额?

来自分类Dev

通过按日期分组从一个表创建多个折线图的系列

来自分类Dev

如何通过在Java中传递当前日期来获取下一个日期

来自分类Dev

按日期的平均销售额?

来自分类Dev

SQLite-按下一个即将到来的日期排序(忽略年份)

来自分类Dev

使用linq按小时将数据分组并添加下一个日期

来自分类Dev

如何通过过程在计划表中的多个日期中识别上一个计划日期和下一个计划日期

来自分类Dev

创建一个按日期和类别对数据进行分组的图形

来自分类Dev

按日期联接两个表,其中右表中的日期大于左表中的日期,但小于右表中的下一个最大日期

来自分类Dev

如何从日期变量中查找下一个和上一个日期

来自分类Dev

MSSQL查询以获取日期起的周日,分组周日和总销售额

来自分类Dev

下一个元素名称

来自分类Dev

如何通过查看每行中的上一个和下一个值进行分组

来自分类Dev

仅当匹配今天的日期时,才获取按自定义前题排序的数组中的下一个/上一个项目

来自分类Dev

按日期分组并将行折叠成一个

来自分类Dev

MySQL 按日期和名称分组

来自分类Dev

如何按名称、日期分组并限制 current_date

Related 相关文章

  1. 1

    按月计数和按名称分组

  2. 2

    如何通过在Java中传递当前日期来获取下一个日期

  3. 3

    按给定日期获取上一个和下一个星期一的日期

  4. 4

    在Elasticsearch中按日期获取上一个和下一个文档

  5. 5

    通过按名称分组的data.table的最后销售日期和下一个销售日期

  6. 6

    r-如何从分组数据和控制输出格式的最后一个日期条目中减去第一个日期条目

  7. 7

    如何通过MWS / Amazon报告检索当前的销售价格和日期

  8. 8

    调整下一个日期

  9. 9

    通过按日期分组,然后按日期时间在NodeJS中分组来转换JSON

  10. 10

    通过单击javascript 3值中的按钮将日期更改为下一个/上一个

  11. 11

    通过一个查询中的数据像样条一样按日期分组

  12. 12

    如何按下一个可用日期排序?

  13. 13

    通过一个查询获取最后订单日期,总订单和总金额?

  14. 14

    通过按日期分组从一个表创建多个折线图的系列

  15. 15

    如何通过在Java中传递当前日期来获取下一个日期

  16. 16

    按日期的平均销售额?

  17. 17

    SQLite-按下一个即将到来的日期排序(忽略年份)

  18. 18

    使用linq按小时将数据分组并添加下一个日期

  19. 19

    如何通过过程在计划表中的多个日期中识别上一个计划日期和下一个计划日期

  20. 20

    创建一个按日期和类别对数据进行分组的图形

  21. 21

    按日期联接两个表,其中右表中的日期大于左表中的日期,但小于右表中的下一个最大日期

  22. 22

    如何从日期变量中查找下一个和上一个日期

  23. 23

    MSSQL查询以获取日期起的周日,分组周日和总销售额

  24. 24

    下一个元素名称

  25. 25

    如何通过查看每行中的上一个和下一个值进行分组

  26. 26

    仅当匹配今天的日期时,才获取按自定义前题排序的数组中的下一个/上一个项目

  27. 27

    按日期分组并将行折叠成一个

  28. 28

    MySQL 按日期和名称分组

  29. 29

    如何按名称、日期分组并限制 current_date

热门标签

归档