R语言字符型数值数组操作:删除小于30元素与按个位排序方法咨询
R语言字符串数组操作解决方案
1. 不转换为数值类型删除值小于30的元素
通过提取字符串首字符做筛选:
- 长度为1的字符串(如"0")首字符为"0",直接排除
- 长度为2的字符串中,首字符是"1"或"2"的对应数值小于30,仅保留首字符≥"3"的元素
实现代码:
D = c("0" , "11", "12", "13", "14", "15", "16", "21", "22", "23", "24", "25", "26", "31", "32", "33", "34", "35", "36", "41", "42", "43", "44","45", "46","51","52", "53", "54", "55", "56", "61", "62", "63", "64", "65", "66") # 筛选符合条件的元素 filtered_D <- D[substr(D, 1, 1) >= "3"] print(filtered_D)
2. 根据个位数字重新排序数组
提取每个字符串的最后一位作为排序键,用order()函数实现按个位顺序排列:
实现代码:
# 提取每个元素的个位数字 units_digits <- substr(D, nchar(D), nchar(D)) # 按个位数字排序 sorted_D <- D[order(units_digits)] print(sorted_D)
执行后会得到个位为1的元素排在最前,依次是个位为2、3…6的元素,完全匹配示例要求(如31,41,51,61,32,42…)。
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

