R 按ID:标记我是否对下一个/上一个日期有保留

R 按ID:标记我是否对下一个/上一个日期有保留,r,R,我有一个如下所示的数据集: 身份证件 日期 1. 20/11/2004 1. 27/11/2004 1. 28/11/2004 1. 29/11/2004 2. 30/11/2004 2. 05/08/2005 2. 06/08/2005 3. 07/09/2004 3. 12/10/2004 我们需要将您的Date列转换为Date类,然后使用dplyr就很容易了: library(dplyr) library(lubridate) your_data %>% mutate(Date

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

身份证件 日期 1. 20/11/2004 1. 27/11/2004 1. 28/11/2004 1. 29/11/2004 2. 30/11/2004 2. 05/08/2005 2. 06/08/2005 3. 07/09/2004 3. 12/10/2004
我们需要将您的
Date
列转换为
Date
类,然后使用
dplyr
就很容易了:

library(dplyr)
library(lubridate)
your_data %>%
  mutate(Date = mdy(Date)) %>%
  group_by(ID) %>%
  mutate(Treatment = case_when(
      (Date - 1) %in% Date & (Date + 1) %in% Date ~ 3,
      (Date + 1) %in% Date ~ 1,
      (Date - 1) %in% Date ~ 2, 
      TRUE ~ 0
    )
  )

很好,非常感谢!请允许我再问一个问题。我正在使用格雷戈慷慨分享的代码。然而,现在我需要标记另一种情况,一个日期显示两次(或更多),也就是说,我必须在同一天进行观察。我如何调整代码来标记这些情况呢?非常感谢