排序日期列表,并根据R中的此排序顺序对其他列表进行排序

问题描述 投票:0回答:2

我得到的日期顺序不正确:“ 1-12-2019”“ 17-11-2019”“ 18-11-2019”

除了此日期列表,我还获得了相应值的列表:2 3 2

我想按升序对日期列表进行排序。然后按照日期列表的排序顺序,我要对值列表进行排序。

例如:

当前情况:

  • datesLst:“ 1-12-2019”“ 17-11-2019”“ 18-11-2019”
  • valuesLst:2 3 2

想要的情况:

  • datesLst:“ 17-11-2019”“ 18-11-2019”“ 1-12-2019”
  • valuesLst:3 2 2

如果能得到帮助,将不胜感激。

r
2个回答
1
投票

您只需要订购日期并将其用作索引来订购值,即

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
投票

也许您可以尝试以下代码

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

诸如此类

> res
[1] 3 2 2

DATA

s <- c("17-11-2019", "18-11-2019", "1-12-2019")
© www.soinside.com 2019 - 2024. All rights reserved.