首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中查找最早的日期,在另一个日期之前?

在R中查找最早的日期,在另一个日期之前?
EN

Stack Overflow用户
提问于 2021-10-13 01:37:11
回答 1查看 27关注 0票数 1

我正在尝试为相同的个人ID确定给定列中出现在另一列中的日期之前的最早日期。

作为相同理论的一个例子,但具体情况不同--比如一个人经常在商店购物,但有时只使用优惠券。我有每次访问的记录,以及他们是否使用优惠券。对于每次访问,我想知道他们使用优惠券的最早过去日期(忽略他们在未来访问中使用优惠券的次数)。

以下是我拥有的数据:

代码语言:javascript
运行
复制
\begin{table}[]
\begin{tabular}{lll}
ID & visit\_date & coupon\_date \\
1  & 3/1/2018    &              \\
1  & 2/1/2018    & 2/1/2018     \\
1  & 1/1/2018    &              \\
2  & 7/1/2018    & 7/1/2018     \\
2  & 6/1/2018    &              \\
3  & 12/1/2018   &              \\
3  & 11/1/2018   & 11/1/2018    \\
3  & 9/1/2018    &              \\
3  & 8/1/2018    & 8/1/2018    
\end{tabular}
\end{table}

下面是我想要的样子:

代码语言:javascript
运行
复制
\begin{table}[]
\begin{tabular}{lll}
ID & visit\_date & most\_recent\_coupon\_date \\
1  & 3/1/2018    & 2/1/2018                   \\
1  & 2/1/2018    & 2/1/2018                   \\
1  & 1/1/2018    &                            \\
2  & 7/1/2018    & 7/1/2018                   \\
2  & 6/1/2018    &                            \\
3  & 12/1/2018   & 11/1/2018                  \\
3  & 11/1/2018   & 11/1/2018                  \\
3  & 9/1/2018    & 8/1/2018                   \\
3  & 8/1/2018    & 8/1/2018                  
\end{tabular}
\end{table}

我尝试过使用max、领先/滞后等,但我找不到一种方法来获取记录在另一列中的日期之前的最大日期。

感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-10-13 02:09:52

您可以使用dplyr库和zoo库来完成此操作:

代码语言:javascript
运行
复制
library(dplyr)
library(zoo)

newdf <- na.locf(mutate_all(df, list(~na_if(.,""))), fromLast=T)
newdf[strptime(newdf$visit_date, format="%d/%m/%Y") < strptime(newdf$coupon_date, format="%d/%m/%Y"), 'coupon_date'] <- ''

输出:

代码语言:javascript
运行
复制
> newdf
  ID visit_date coupon_date
1  1   3/1/2018    2/1/2018
2  1   2/1/2018    2/1/2018
3  1   1/1/2018            
4  2   7/1/2018    7/1/2018
5  2   6/1/2018            
6  3  12/1/2018   11/1/2018
7  3  11/1/2018   11/1/2018
8  3   9/1/2018    8/1/2018
9  3   8/1/2018    8/1/2018
> 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69548741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档