我有以下形狀的字符向量:如何對半數字字符串進行排序?
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