如何在R语言中对数值向量进行升序排序并生成有序序列?
解决方案
你的向量v是字符类型,直接排序会遵循字典序而非数值大小,所以需要先转换为数值类型再排序:
# 转换为数值型并排序 sorted_v <- sort(as.numeric(v)) # 若需要保持字符格式,可再转回字符型 sorted_v_char <- as.character(sorted_v)
运行后得到的结果就是按数值从小到大排列的序列:
[1] 12 13 14 15 16 17 18 21 23 24 25 26 27 28 31 32 34 35 36 37 38 41 42 43 45 46 47 48 [29] 51 52 53 54 56 57 58 61 62 63 64 65 67 68 71 72 73 74 75 76 78 81 82 83 84 85 86 87
补充说明
你提到的11/22...这类两位相同的元素,在当前用combn生成的向量里本来就不存在(因为combn选取的是两个不同的数字组合),所以无需额外过滤。如果后续生成的向量包含这类元素,可通过以下代码过滤:
# 过滤两位数字相同的元素 filtered_v <- v[substr(v, 1, 1) != substr(v, 2, 2)]
内容的提问来源于stack exchange,提问作者Aoxiang Xin
相关产品推荐
相关产品推荐

