R语言如何删除数据集中每行数值的最后一位数字
R语言实现固定长度数值列删除末位的方案
针对id_municipio列固定为7位数值、需要删除最后1位统一转为6位数值的需求,有两种稳定可复现的实现方式:
- 数值运算法(性能最优)
直接对数值做整数除以10的运算即可,不需要做类型转换,适合百万行级别的大批量数据处理,处理后字段保持数值格式:
注:# 替换df为你实际的数据集名称 df$id_municipio <- df$id_municipio %/% 10%/%是R内置的整数除法运算符,和floor(df$id_municipio/10)效果完全一致,写法更简洁。 - 字符串截取法(适配后续字符串处理场景)
先将数值转为字符型,截取前6位字符后再转回整数即可,如果你后续需要对这个ID做字符串匹配、拼接类操作,这个方法的逻辑更直观:# 基础R写法 df$id_municipio <- as.integer(substr(as.character(df$id_municipio), 1, 6)) # dplyr管道流写法 library(dplyr) df <- df |> mutate(id_municipio = as.integer(substr(as.character(id_municipio), 1, 6)))
效果验证:针对你给出的示例值
5300108,两种方法处理后均会返回目标值530010,完全匹配预期输出。
内容的提问来源于stack exchange,提问作者Mateus Maciel
相关产品推荐
相关产品推荐

