【发布时间】:2020-03-04 14:11:21
【问题描述】:
我的示例 data.frame(日期格式 d/m/y),记录客户活跃的日期:
customer date
1 10/1/20
1 9/1/20
1 6/1/20
2 10/1/20
2 8/1/20
2 7/1/20
2 6/1/20
我想像这样创建一个列“n_consecutive_days”:
customer date n_consecutive_days
1 10/1/20 2
1 9/1/20 1
1 6/1/20 N/A
2 10/1/20 1
2 8/1/20 3
2 7/1/20 2
2 6/1/20 N/A
新列计算每个客户之前连续日期的数量。我希望客户的第一个日期是 N/A,因为如果它是第一个日期,那么谈论前连续几天是没有意义的。
任何帮助将不胜感激。我可以计算日期之间的差异,但不能根据需要计算连续天数。
【问题讨论】:
-
为什么在你想要的输出中多了一行?
-
我不太明白应该如何计算
n_consecutive_days列...N/A和0之间有什么区别?为什么没有1的条目? -
@AaronMontgomery,看起来是日期格式
"%e/%m/%y",但如果没有 OP 的确认,我无法 100% 确定 -
@Andrew 这很有可能——但我仍然对为什么使用
N/A以及为什么不使用1感到困惑...... -
这很容易做到。将其设置为 0 或 1 以表示孤独的一天,无论是什么更容易编码。然后在最后将其更改为您想要的任何内容(
1 -> 0或0 -> 1)。没什么大不了的。