Как сортировать даты в порядке возрастания внутри строки в наборе данных - PullRequest
0 голосов
/ 18 июня 2019

Итак, я пытаюсь симулировать мои данные, и мой набор данных включает переменные дат. Я был в состоянии генерировать случайные даты для этих переменных. Все даты в течение периода от х до у. Однако мне нужно убедиться, что для каждого наблюдения дата в столбце 3 предшествует дате в столбце 5 и т. Д. И т. Д.

Это код, который я использовал для генерации дат для каждой переменной:

sample(seq(as.Date('2011/01/01'), as.Date('2018/01/01'), by="day"),50)

Итак, мой вопрос: как пройти каждую строку и убедиться, что даты в порядке возрастания?

This is a screenshot of my dataset

Спасибо :))

1 Ответ

0 голосов
/ 18 июня 2019

Как это?Если это ваша цель, я могу комментировать код, чтобы его было легче понять.Кроме того, в будущем рекомендуется добавлять воспроизводимый пример кода при публикации вопроса.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...