如何在R语言中为长度不足9位的Key列值添加前导0?
在R语言中为Key列长度小于9的值添加前导0
方法一:基础R实现
直接用nchar()判断字符串长度,结合ifelse()和paste0()完成补0操作:
# 构建原始数据框 id = c(1,2,3,4,5,6,7,8,9,10) Key = c("10032012", "10812012", "2073017", "10692013", "10892012", "10952014", "10972012", "560392013", "560372013", "56022012") df = data.frame(id, Key) # 对Key列进行补0处理 df$Key = ifelse(nchar(df$Key) < 9, paste0("0", df$Key), df$Key)
方法二:tidyverse工具链实现
如果习惯用dplyr,可通过管道流更简洁地处理:
library(dplyr) # 加载数据后直接处理 df = df %>% mutate(Key = ifelse(nchar(Key) < 9, paste0("0", Key), Key))
验证结果
处理完成后,可通过以下代码确认结果与预期一致:
# 定义预期输出 df_desired = structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Key = c("010032012", "010812012", "02073017", "010692013", "010892012", "010952014", "010972012", "560392013", "560372013", "56022012")), class = "data.frame", row.names = c(NA, -10L)) # 对比验证 all.equal(df, df_desired)
运行后返回TRUE说明处理结果符合预期。
内容的提问来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

