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

詹姆斯·哈灵顿

我有这个数据框:

    plans     date                    expiring_date
1   premium   2020-07-12 20:26:54     2020-08-11 20:26:54
2   premium   2020-08-15 00:11:54     2020-09-14 00:11:54
3   premium   2020-09-14 19:59:25     2020-10-14 19:59:25
4   single    2020-09-14 20:02:41     NA
5   double    2020-09-17 16:31:07     NA
6   double    2020-10-07 09:54:38     NA
7   premium   2020-10-15 12:06:57     2020-11-14 12:06:57
8   double    2020-10-15 12:08:46     NA
9   single    2020-10-15 12:13:59     NA

这是由此产生的:

df <- data.frame(plans = c("premium", "premium", "premium", "single", "double", "double", "premium", "double", "single"),
                 date = as.POSIXct(c("2020-07-12 20:26:54", "2020-08-15 00:11:54", "2020-09-14 19:59:25",
                                     "2020-09-14 20:02:41", "2020-09-17 16:31:07", "2020-10-07 09:54:38",
                                     "2020-10-15 12:06:57", "2020-10-15 12:08:46", "2020-10-15 12:13:59")),
                 expiring_date = as.POSIXct(c("2020-08-11 20:26:54", "2020-09-14 00:11:54", "2020-10-14 19:59:25",
                                              NA, NA, NA, "2020-11-14 12:06:57", NA, NA)))

我想要的是添加一个新列,该行将为具有溢价计划的行获取具有溢价计划的下一行的日期。因此,结果数据帧将是这样的:

    plans     date                    expiring_date          next_premium_date
1   premium   2020-07-12 20:26:54     2020-08-11 20:26:54    2020-08-15 00:11:54
2   premium   2020-08-15 00:11:54     2020-09-14 00:11:54    2020-09-14 19:59:25
3   premium   2020-09-14 19:59:25     2020-10-14 19:59:25    2020-10-15 12:06:57
4   single    2020-09-14 20:02:41     NA                     NA
5   double    2020-09-17 16:31:07     NA                     NA
6   double    2020-10-07 09:54:38     NA                     NA
7   premium   2020-10-15 12:06:57     2020-11-14 12:06:57    NA
8   double    2020-10-15 12:08:46     NA                     NA
9   single    2020-10-15 12:13:59     NA                     NA

我正在尝试使用dplyr库,因为我要使用该group_by函数,因为我有多个用户,并且我想为每个用户执行此操作,但到目前为止没有结果。有任何想法吗?

卡尔提克S

这项工作:

> library(dplyr)
> df %>% filter(plans == 'premium') %>% mutate(next_premium_date = lead(date)) %>% 
+   right_join(df) %>% arrange(date)
Joining, by = c("plans", "date", "expiring_date")
    plans                date       expiring_date   next_premium_date
1 premium 2020-07-12 20:26:54 2020-08-11 20:26:54 2020-08-15 00:11:54
2 premium 2020-08-15 00:11:54 2020-09-14 00:11:54 2020-09-14 19:59:25
3 premium 2020-09-14 19:59:25 2020-10-14 19:59:25 2020-10-15 12:06:57
4  single 2020-09-14 20:02:41                <NA>                <NA>
5  double 2020-09-17 16:31:07                <NA>                <NA>
6  double 2020-10-07 09:54:38                <NA>                <NA>
7 premium 2020-10-15 12:06:57 2020-11-14 12:06:57                <NA>
8  double 2020-10-15 12:08:46                <NA>                <NA>
9  single 2020-10-15 12:13:59                <NA>                <NA>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据列值在DataFrame中查找下一行

来自分类Dev

在R中满足条件时跳过一行代码

来自分类Dev

在SQL(Impala)中,如何计算满足条件的行与下一行之间的时间增量?

来自分类Dev

R为每一行计算满足特殊条件之前的行中某一列的值之和

来自分类Dev

R为每一行计算满足特殊条件之前的行中各列之一的值之和

来自分类Dev

如果满足条件,则R跳到下一行,然后检查另一个条件

来自分类Dev

根据R中上一行或下一行的值在列中添加缺失值

来自分类Dev

在同一行中但在其他列中都满足条件的情况下,在列中查找字符串值的行

来自分类Dev

在同一行中但在其他列中都满足条件的情况下,在列中查找字符串值的行

来自分类Dev

R:循环遍历行直到满足条件,然后在下一行重新开始

来自分类Dev

如果一行满足条件,则删除共同值的行

来自分类Dev

在转到R中的下一行之前,如何使函数返回每一行的值?

来自分类Dev

根据列上的子字符串条件在组中查找下一行-Pandas

来自分类Dev

在给定行中查找具有特定值的下一行

来自分类Dev

在熊猫中满足条件时从下面一行返回值

来自分类Dev

在Python中找到满足条件的列中的第一行(值大于x)

来自分类Dev

R:在满足条件的行中查找一个值,向该值添加某些数字,然后在该行的另一列中创建一条消息

来自分类Dev

R满足条件时按组的第一行

来自分类Dev

仅当满足条件时才自动移至列中的下一个单元格;如果不满足条件,请检查下一行中的条件并继续执行相同的操作

来自分类Dev

如何获得R数据框中满足特定条件的第一行?

来自分类Dev

如果满足某些条件,则查找重复值;如果找不到,则查找下一个重复值的条件。

来自分类Dev

使用shell脚本满足条件后如何打印下一行?

来自分类Dev

如果不满足条件该如何跳至下一行?

来自分类Dev

Presto / SQL查找满足条件的下一个值

来自分类Dev

Purrr In R在满足条件的组中找到最后一行,然后从该行中提取一个值

来自分类Dev

具有特定值 (0) 的行与 R 中的下一行之间的差异

来自分类Dev

如何在Pandas df中遍历每一行的值以检查该值是否满足条件

来自分类Dev

在R中,如何根据上一行(或下一行)的更改为变量设置值?

来自分类Dev

SQL:如果满足条件,则将值从列复制到同一列中的另一行

Related 相关文章

  1. 1

    根据列值在DataFrame中查找下一行

  2. 2

    在R中满足条件时跳过一行代码

  3. 3

    在SQL(Impala)中,如何计算满足条件的行与下一行之间的时间增量?

  4. 4

    R为每一行计算满足特殊条件之前的行中某一列的值之和

  5. 5

    R为每一行计算满足特殊条件之前的行中各列之一的值之和

  6. 6

    如果满足条件,则R跳到下一行,然后检查另一个条件

  7. 7

    根据R中上一行或下一行的值在列中添加缺失值

  8. 8

    在同一行中但在其他列中都满足条件的情况下,在列中查找字符串值的行

  9. 9

    在同一行中但在其他列中都满足条件的情况下,在列中查找字符串值的行

  10. 10

    R:循环遍历行直到满足条件,然后在下一行重新开始

  11. 11

    如果一行满足条件,则删除共同值的行

  12. 12

    在转到R中的下一行之前,如何使函数返回每一行的值?

  13. 13

    根据列上的子字符串条件在组中查找下一行-Pandas

  14. 14

    在给定行中查找具有特定值的下一行

  15. 15

    在熊猫中满足条件时从下面一行返回值

  16. 16

    在Python中找到满足条件的列中的第一行(值大于x)

  17. 17

    R:在满足条件的行中查找一个值,向该值添加某些数字,然后在该行的另一列中创建一条消息

  18. 18

    R满足条件时按组的第一行

  19. 19

    仅当满足条件时才自动移至列中的下一个单元格;如果不满足条件,请检查下一行中的条件并继续执行相同的操作

  20. 20

    如何获得R数据框中满足特定条件的第一行?

  21. 21

    如果满足某些条件,则查找重复值;如果找不到,则查找下一个重复值的条件。

  22. 22

    使用shell脚本满足条件后如何打印下一行?

  23. 23

    如果不满足条件该如何跳至下一行?

  24. 24

    Presto / SQL查找满足条件的下一个值

  25. 25

    Purrr In R在满足条件的组中找到最后一行,然后从该行中提取一个值

  26. 26

    具有特定值 (0) 的行与 R 中的下一行之间的差异

  27. 27

    如何在Pandas df中遍历每一行的值以检查该值是否满足条件

  28. 28

    在R中,如何根据上一行(或下一行)的更改为变量设置值?

  29. 29

    SQL:如果满足条件,则将值从列复制到同一列中的另一行

热门标签

归档