我有 3 個日期列(班級日期),我想創建一個新列,該列將包含 3 個日期中最早的日期。這是我在下面使用的代碼:
df1 <- df %>% mutate(timeout= pmin(date1, date2, end_date))
如果date1anddate2是NAs,那么我希望end_date在列中回傳日期timeout,因此timeout不應該有任何NAs。上面的代碼帶回了NAs。任何幫助將不勝感激。
uj5u.com熱心網友回復:
可以加na.rm = TRUE,計算時會忽略NA每一行的s pmin。
library(dplyr)
df %>%
mutate(timeout = pmin(date1, date2, end_date, na.rm = TRUE))
輸出
id date1 date2 end_date timeout
1 1 <NA> <NA> 2008-01-23 2008-01-23
2 1 2007-10-16 2007-11-01 2008-01-23 2007-10-16
3 2 2007-11-30 2007-11-30 2007-11-30 2007-11-30
4 3 2007-08-17 2007-12-17 2008-12-12 2007-08-17
5 3 2008-11-12 2008-12-12 2008-12-12 2008-11-12
資料
df <- structure(list(id = c(1L, 1L, 2L, 3L, 3L), date1 = structure(c(NA,
13802, 13847, 13742, 14195), class = "Date"), date2 = structure(c(NA,
13818, 13847, 13864, 14225), class = "Date"), end_date = c("2008-01-23",
"2008-01-23", "2007-11-30", "2008-12-12", "2008-12-12")), class = "data.frame", row.names = c("1",
"2", "3", "4", "5"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451450.html
下一篇:當月第一天的值(零除外)
