我有一个如下所示的数据框:
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), ]
我不是在询问如何编码序列,而是如何查找与订单号对应的日期并将其放入新列中。
感谢任何帮助。
谢谢,
答案 0 :(得分:1)
在基地R:
df$firstOrderDate <- with(df, ifelse(orderNumber == 1, date, NA))
使用dplyr:
df %<>% mutate(firstOrderDate = ifelse(orderNumber == 1, date, NA))