需求
R默认带文本的编号不是按数字来排序的,这会对数据排序造成一定影响。如paste0("sample",1:10)在列中排序不是按1-100,而是按ASCII排序。
> sort(paste0("sample",1:10))
[1] "sample1" "sample10" "sample2" "sample3" "sample4" "sample5" "sample6" "sample7" "sample8" "sample9"
要想按数字排序,需要首先编制如01,02,03......等序号,再与文本进行合并。
formatC函数解决
> num <- formatC(1:10, flag = '0', width = 2)
> num
[1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10"
> sort(paste0("sample",num))
[1] "sample01" "sample02" "sample03" "sample04" "sample05" "sample06" "sample07" "sample08" "sample09" "sample10"
https://zhidao.baidu.com/question/1638492141117470980.html
本文由 mdnice 多平台发布
本文介绍了在R语言中,如何使用formatC函数解决文本编号按数字而非ASCII排序的问题,通过先生成01,02,03等形式的序号再合并到文本中,确保了数据按预期的数字顺序排列。
2603

被折叠的 条评论
为什么被折叠?



