如何删除R中以下数字中的第二个(2)和第五个(0)?例如:3255103161
如何删除R中以下数字中的第二个(2)和第五个(0)?例如:3255103161。您可以使用正则表达式查找如何删除R中以下数字中的第二个(2)和第五个(0)?例如:3255103161,r,R,如何删除R中以下数字中的第二个(2)和第五个(0)?例如:3255103161。您可以使用正则表达式查找(?我们可以使用strsplit将数字拆分为单个数字,并根据需要删除这些数字 val <- 3255103161 rmv <- c(2, nchar(val) - 4); # Remove 2nd from left, 5th from right paste0(unlist(strsplit(as.character(val), ""))[-rmv], collapse =
(?我们可以使用strsplit
将数字拆分为单个数字,并根据需要删除这些数字
val <- 3255103161
rmv <- c(2, nchar(val) - 4); # Remove 2nd from left, 5th from right
paste0(unlist(strsplit(as.character(val), ""))[-rmv], collapse = "")
#[1] "35513161"
我们可以使用sub
删除0
sub("0", "", 3255103161)
#[1] "325513161"
如果是基于职位的
sub("0(.{4})$", "\\1", 3255103161)
#[1] "325513161"
用于从两端删除数字
sub("^(.).(.*)0(.{4})$", "\\1\\2\\3", 3255103161)
#[1] "35513161"
是的,sub(“.({4})$”,“\\1”,3255103161),这适用于“从右侧删除第五个”。但是如何“从左侧删除第二个数字?”我仍然无法理解。@Ying更新了帖子。请检查
val <- 3255103161
rmv <- c(2, nchar(val) - 4); # Remove 2nd from left, 5th from right
paste0(unlist(strsplit(as.character(val), ""))[-rmv], collapse = "")
#[1] "35513161"
as.integer(paste0(unlist(strsplit(as.character(val), ""))[-rmv], collapse = ""))
#[1] 35513161
sub("0", "", 3255103161)
#[1] "325513161"
sub("0(.{4})$", "\\1", 3255103161)
#[1] "325513161"
sub("^(.).(.*)0(.{4})$", "\\1\\2\\3", 3255103161)
#[1] "35513161"