我有以下形状的字符向量:如何对半数字字符串进行排序?
fld <- c('20*20', '100*100', '200*200', '50*50', '1000*1000', '250*250')
我需要根据数目的星前的值的元素进行排序。
sort(fld)
给出:
[1] "100*100" "1000*1000" "20*20" "200*200" "250*250" "50*50"
,而不是可取的:
[1] "20*20" "50*50" "100*100" "200*200" "250*250" "1000*1000"
我已经准备了下面的表达式这做正确的事:
fld[
charmatch(
paste(
as.character(sort(as.integer(
gsub('\\*.{2,4}', '', fld)
))),
'*', sep = ''
),
fld)
]
,但我敢打赌,有较短/更容易/更自然的方式...
因为没有更多的建议,这是重复的问题,我认为这可能会有趣的人知道,也有一个更一般的问题,也是一个很好的答案:https://stackoverflow.com/questions/2778039/how-to-perform-natural-sorting – Pawel