Сортировать список дат и отсортировать другой список на основе этого порядка сортировки в R - PullRequest
0 голосов
/ 16 января 2020

У меня есть список дат, которые не в правильном порядке: "1-12-2019" "17-11-2019" "18-11-2019"

Помимо этого списка даты, у меня также есть список соответствующих значений: 2 3 2

Я хочу отсортировать список дат в порядке возрастания. И в том же порядке, в котором отсортирован список дат, я хочу отсортировать список значений.

Например:

Текущая ситуация:

  • dateLst: " 1-12-2019 "" 17-11-2019 "" 18-11-2019 "
  • valuesLst: 2 3 2

Требуемая ситуация:

  • dateLst: "17-11-2019" "18-11-2019" "1-12-2019"
  • valuesLst: 3 2 2

Буду признателен, если я может получить некоторую помощь.

Ответы [ 2 ]

3 голосов
/ 16 января 2020

Вам просто нужно упорядочить даты и использовать их в качестве индекса для упорядочения значений, например

i1 <- order(as.Date(datesLst, format = '%d-%m-%Y'))
datesLst[i1]
#[1] "17-11-2019" "18-11-2019" "1-12-2019" 
valueslist[i1]
#[1] 3 2 2
0 голосов
/ 16 января 2020

Может быть, вы можете попробовать следующий код

res <- as.numeric(names(sort(setNames(as.Date(s, format = '%d-%m-%Y'),c(2,3,2)))))

такой, что

> res
[1] 3 2 2

ДАННЫЕ

s <- c("17-11-2019", "18-11-2019", "1-12-2019")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...