![](/img/trans.png)
[英]How to find different dates under one series and choose the first date only of each series in r?
[英]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.