這是我的資料集的表示
ID<-1:5
Date1<-c(NA,NA,"2022-06-10",NA,NA)
Date2<-c(NA,NA,NA,NA,NA)
Date3<-c("2022-02-08",NA,NA,NA,NA)
Date4<-c(NA,NA,"2022-06-24",NA,"2022-05-13")
mydata<-data.frame(ID,Date1,Date2,Date3,Date4)
我想創建一個額外的日期列,其中我將為每個人提供最后日期。
像下面
ID Date1 Date2 Date3 Date4 last_date
1 1 <NA> NA 2022-02-08 <NA> 2022-02-08
2 2 <NA> NA <NA> <NA> <NA>
3 3 2022-06-10 NA <NA> 2022-06-24 2022-06-24
4 4 <NA> NA <NA> <NA> <NA>
5 5 <NA> NA <NA> 2022-05-13 2022-05-13
uj5u.com熱心網友回復:
我們可能會使用coalesce
library(dplyr)
mydata %>%
mutate(last_date = coalesce(Date4, Date3, Date2, Date1))
-輸出
ID Date1 Date2 Date3 Date4 last_date
1 1 <NA> NA 2022-02-08 <NA> 2022-02-08
2 2 <NA> NA <NA> <NA> <NA>
3 3 2022-06-10 NA <NA> 2022-06-24 2022-06-24
4 4 <NA> NA <NA> <NA> <NA>
5 5 <NA> NA <NA> 2022-05-13 2022-05-13
如果值未在“Date1”、“Date2”、...中排序,請使用pmax
library(purrr)
mydata %>%
mutate(last_date = exec(pmax, !!! .[-1], na.rm = TRUE))
ID Date1 Date2 Date3 Date4 last_date
1 1 <NA> NA 2022-02-08 <NA> 2022-02-08
2 2 <NA> NA <NA> <NA> <NA>
3 3 2022-06-10 NA <NA> 2022-06-24 2022-06-24
4 4 <NA> NA <NA> <NA> <NA>
5 5 <NA> NA <NA> 2022-05-13 2022-05-13
uj5u.com熱心網友回復:
使用基礎 R
mydata["last_date"] <- apply(mydata[,-1],1,max, na.rm=T)
ID Date1 Date2 Date3 Date4 last_date
1 1 <NA> NA 2022-02-08 <NA> 2022-02-08
2 2 <NA> NA <NA> <NA> <NA>
3 3 2022-06-10 NA <NA> 2022-06-24 2022-06-24
4 4 <NA> NA <NA> <NA> <NA>
5 5 <NA> NA <NA> 2022-05-13 2022-05-13
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497352.html
標籤:r
上一篇:將資料框轉換為行向量或長向量