按字符类型对行进行排序

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

我需要对列字符类型的行进行排序,首先显示从最高到最低排序的数字,然后显示带有“<" in a specific order: first "

来自:

致:

data.table::data.table(Resultado = c("1,39", "5,89", "3,12", "0,25", "<LCM", "<LDM", "<LDM", "<LCM"))
dplyr
1个回答
0
投票

将变量转换为.character()。
接下来,定义自定义订单。
然后重新排序。

dt <- data.table(Resultado = c("1,39", "5,89", "3,12", "0,25", "<LCM", "<LDM", "<LDM", "<LCM"))

dt[, Resultado := as.character(Resultado)]

custom_order <- c(rev(sort(dt[!Resultado %like% "<"][order(-as.numeric(gsub(",", ".", Resultado)))]$Resultado)),
                  "<LCM",
                  "<LDM")

dt <- dt[order(match(Resultado, custom_order))]

> print(dt)
   Resultado
1:      5,89
2:      3,12
3:      1,39
4:      0,25
5:      <LCM
6:      <LCM
7:      <LDM
8:      <LDM
© www.soinside.com 2019 - 2024. All rights reserved.