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

如何将DataFrame中四位数字格式的Code列转换为两位数字格式?

处理DataFrame中Code列的格式转换:保留前两位字符

针对你需要把四位格式的Code列(如0176)转换为两位格式(如01)的需求,这里提供几种基于tidyverse的实用方法,同时覆盖你提到的separate方案:

方法1:使用separate()函数(你提到的思路)

利用separate按固定位置分割字符串,直接替换原Code列:

library(tidyverse)

# 假设你的数据框名为df
df <- df %>%
  separate(Code, into = c("Code", "temp_col"), sep = 2, remove = TRUE)
  • sep = 2:指定从第2个字符后分割
  • remove = TRUE:自动删除临时生成的temp_col,最终Code列保留前两位

方法2:直接截取前两位字符(更直观)

用str_sub()直接提取目标字符,代码更简洁:

df <- df %>%
  mutate(Code = str_sub(Code, start = 1, end = 2))

方法3:正则表达式删除末尾两位

通过str_remove()匹配并删除字符串末尾的两个字符:

df <- df %>%
  mutate(Code = str_remove(Code, ".{2}$"))
  • .{2}$:正则表达式,匹配任意两个位于字符串末尾的字符

注意事项

如果你的Code列是数值类型(而非字符型),需要先转换为字符格式,避免前导零丢失:

df <- df %>%
  mutate(Code = as.character(Code)) %>%
  mutate(Code = str_sub(Code, 1, 2))

以上所有方法都能兼容不同Region的数据,不会受地区字段影响。

内容的提问来源于stack exchange,提问作者Sara Dwindler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:21