r - 在R中按条件插入字符串
问题描述
我有这种情况,但有更多信息:
Barcode
NM00000512
NM000522
NM00000513
NM000514
我想在较短的条形码中再插入两个零,如下所示:
Barcode
NM00000512
NM00000522
NM00000513
NM00000514
我试过这个df$Barcode <- gsub('NM000', "NM00000",df$Barcode)
但没有用。谢谢
解决方案
其他答案对零的数量做出假设(应该有五个)。我假设前面应该正好有两个字符。如果不是这种情况,您可以修改它以在第一个数字之前拆分字符串(或根据适用的任何不同规则)。
barcode <- c("NM00000512", "NM000522", "NM00000513", "NM000514")
pad <- function(barcode) {
x <- as.integer(substring(barcode, 3)) #extract numbers
n <- max(nchar(barcode)) - 2 #desired length of number in string
paste0(substring(barcode, 1, 2), #the two characters
sprintf(paste0("%0", n, "i"), x) #pad with zeros
)
}
pad(barcode)
#[1] "NM00000512" "NM00000522" "NM00000513" "NM00000514"
推荐阅读
- jsonschema - 当 if-else 存在时 JSON Schema 验证器的额外错误消息
- python - 如何使用 Boto3 搜索 S3 中的数千个对象,只知道部分键名(不是前缀)?
- capl - 有没有办法使用 capl 将诊断响应(UDS)从一条总线发送到另一条总线?
- qt - 获取 Linux 中可用的 WiFi 连接列表
- c# - 是否可以实现异步套接字服务器但在命令上接收消息
- php - 尝试在 Heroku 上安装 ext-gd 内存不足
- python - 为什么这个基本的 PyQt5 程序不起作用?
- javascript - 如何初始化动态插入的数据组以引导
- api - 如何使用 Odoo API(XMLRPC) 使用一个 2many、many2one 和 many2many 字段设置相关字段?
- java - 如何制作精度达到百分之一秒的秒表?