繁体   English   中英

如何标记日期系列中的第一个和最后一个日期

[英]How to mark the first and last dates in date series

data<-data.frame(
ID=c(1,1,1,1,2,2,2,3,3,3,3,3),
Date=c("date1", "date2","date3","date4","date1", "date2","date3","date1",
       "date2","date3","date4","date5"))

我对每个人都有一个有序的日期系列。 我想在每个人f的第一个日期之前,在最后一个日期l之前和其他日期之前o标记,以便在下面有这样的表格:

    ID  Date TypeOfDate
1   1 date1          f
2   1 date2          o
3   1 date3          o
4   1 date4          l
5   2 date1          f
6   2 date2          o
7   2 date3          l
8   3 date1          f
9   3 date2          o
10  3 date3          o
11  3 date4          o
12  3 date5          l

这将是我使用 tidyverse 的方法。

library(tidyverse)

data<-data.frame(
  ID=c(1,1,1,1,2,2,2,3,3,3,3,3),
  Date=c("date1", "date2","date3","date4","date1", "date2","date3","date1",
         "date2","date3","date4","date5"))

data %>% 
  group_by(ID) %>% 
  mutate(row_id=row_number()) %>% 
  mutate(TypeOfDate=case_when(row_id==max(row_number()) ~ "l",
                             row_id==min(row_number()) ~ "f",
                             TRUE ~ as.character("o")))
#> # A tibble: 12 x 4
#> # Groups:   ID [3]
#>       ID Date  row_id TypeOfDate
#>    <dbl> <chr>  <int> <chr>     
#>  1     1 date1      1 f         
#>  2     1 date2      2 o         
#>  3     1 date3      3 o         
#>  4     1 date4      4 l         
#>  5     2 date1      1 f         
#>  6     2 date2      2 o         
#>  7     2 date3      3 l         
#>  8     3 date1      1 f         
#>  9     3 date2      2 o         
#> 10     3 date3      3 o         
#> 11     3 date4      4 o         
#> 12     3 date5      5 l

代表 package (v0.3.0) 于 2020 年 12 月 4 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM