#r #date #median
#r #Дата #срединный
Вопрос:
Я пытаюсь выбрать среднюю дату из трех переменных в R. Для другого фрагмента кода, который я использовал pmin
(см. Ниже). Мне интересно, знает ли кто-нибудь о сопоставимой функции для выбора средней даты. hadmin1
, hadmin2
и hadmin3
находятся в формате даты и времени. Спасибо!
covidtest2 lt;- covidtest %gt;% mutate( hadmin1new = case_when( probid == 1 amp; thirdhosp == 1 ~ pmin(hadmin1, hadmin2, hadmin3), probid == 1 amp; thirdhosp == 0 ~ pmin(hadmin1, hadmin2), probid == 0 ~ hadmin1 ) ) %gt;%
Ответ №1:
В базе R вы можете сделать: (Я составил свои собственные данные, так как вы их не предоставили)
set.seed(42) datetimes lt;- as.POSIXct(runif(18, max = 1e9), origin = '1970-01-01', tz = 'GMT') df lt;- data.frame(dt1 = datetimes[1:6], dt2 = datetimes[7:12], dt3 = datetimes[13:18]) df$new lt;- mapply((x, y, z) median(c(x, y, z)), df$dt1, df$dt2, df$dt3) |gt; as.POSIXct(origin = '1970-01-01', tz = 'GMT') df dt1 dt2 dt3 1 1998-12-28 00:47:23 1993-05-05 07:51:54 1999-08-14 23:10:47 2 1999-09-11 18:43:33 1974-04-08 15:23:17 1978-02-04 08:27:04 3 1979-01-25 19:12:14 1990-10-27 01:51:30 1984-08-25 14:40:22 4 1996-04-25 15:53:46 1992-05-05 11:19:44 1999-10-15 19:08:42 5 1990-05-03 14:38:38 1984-07-03 22:29:36 2000-12-31 01:33:48 6 1986-06-14 01:19:09 1992-10-15 01:24:11 1973-09-21 19:22:41 new 1 1998-12-28 00:47:23 2 1978-02-04 08:27:04 3 1984-08-25 14:40:22 4 1996-04-25 15:53:46 5 1990-05-03 14:38:38 6 1986-06-14 01:19:09