R语言拆分无特殊字符数值列生成pop1、pop2两列
R数据拆分实现方案
以下提供两种可直接运行的实现方式,最终输出均匹配你给出的预期结果。
方法1:数值运算实现(推荐,性能最优)
直接通过整数运算拆分数字,不需要做类型转换,处理大数据集时速度更快:
pop1:对population做整数除法除以10,自动舍弃最后一位,得到前两位数字pop2:对population做10的取模运算,直接得到最后一位数字
完整代码:
library(dplyr) df <- df |> mutate( pop1 = population %/% 10, pop2 = population %% 10, .after = age, # 控制新列位置在age列之后,和预期列顺序一致 population = NULL # 删除原population列 )
方法2:字符串截取实现
如果后续遇到数字长度不固定的拆分场景,可以先转成字符串按位置截取,再转回数值类型:
library(dplyr) library(stringr) df <- df |> mutate( pop1 = str_sub(as.character(population), 1, 2) |> as.numeric(), pop2 = str_sub(as.character(population), -1, -1) |> as.numeric(), .after = age, population = NULL )
运行以上任意一段代码,最终得到的df结构、数值都和你给出的预期结果完全一致。
内容的提问来源于stack exchange,提问作者Amc
相关产品推荐
相关产品推荐

