匹配值并将日期放入新列

时间:2017-05-01 17:29:57

标签: r

我有一个如下所示的数据框:

accountName date      orderNumber
A           1/1/2016  1
B           1/2/2016  1
A           1/3/2016  2
A           1/4/2016  3
B           1/5/2016  2
C           1/6/2016  1
A           1/7/2016  4

我希望能够找到一个人的订单号,然后根据该订单的日期创建一个新列,如果不适用,则创建一个N / A.我会沿着一个序列移动,找到他们第n个订单的客户的确切日期。

accountName date      orderNumber firstOrderDate  secondOrderDate
A           1/1/2016  1           1/1/2016        N/A
B           1/2/2016  1           1/2/2016        N/A
A           1/3/2016  2           N/A             1/3/2016
A           1/4/2016  3           N/A             N/A
B           1/5/2016  2           N/A             1/5/2016
C           1/6/2016  1           1/6/2016        N/A
A           1/7/2016  4           N/A             N/A

我尝试过使用match,但是我得到的结果是没有返回df的唯一值时没有意义。

df[match((df$count), 1), ]

我不是在询问如何编码序列,而是如何查找与订单号对应的日期并将其放入新列中。

感谢任何帮助。

谢谢,

1 个答案:

答案 0 :(得分:1)

在基地R:

df$firstOrderDate <- with(df, ifelse(orderNumber == 1, date, NA))

使用dplyr:

df %<>% mutate(firstOrderDate = ifelse(orderNumber == 1, date, NA))