Как это?Если это ваша цель, я могу комментировать код, чтобы его было легче понять.Кроме того, в будущем рекомендуется добавлять воспроизводимый пример кода при публикации вопроса.
set.seed(123)
df1 = data.frame(id = 1:50,
date_1 = sample(seq(as.Date('2011/01/01'), as.Date('2018/01/01'), by="day"),50),
var_1 = sample(1:50, 50),
date_2 = sample(seq(as.Date('2011/01/01'), as.Date('2018/01/01'), by="day"),50),
var_2 = sample(1:50, 50),
date_3 = sample(seq(as.Date('2011/01/01'), as.Date('2018/01/01'), by="day"),50),
var_3 = sample(1:50, 50))
date_pos <- grepl("date", names(df1))
df1[date_pos] <- t(apply(df1[date_pos], 1, sort))
head(df1)
id date_1 var_1 date_2 var_2 date_3 var_3
1 1 2012-09-02 3 2013-01-05 43 2015-03-15 13
2 2 2013-05-01 22 2016-07-08 25 2017-09-26 11
3 3 2013-11-11 39 2014-06-02 19 2015-03-18 29
4 4 2014-08-08 6 2017-03-06 12 2017-09-04 50
5 5 2013-10-25 26 2014-05-18 6 2017-07-29 25
6 6 2011-04-27 10 2017-02-25 18 2017-03-23 36