You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:39:20