R gsub插入大字符串
R gsub insert into large string
我想将子字符串 "A"
插入长度 > 65536 的字符串中,位置 n
。我正在使用 gsub 来执行此操作,因为它非常高效。
n = 5
text <- paste(rep("a", 70000), collapse = "")
lhs <- '^(.{n})(.*)$'
rhs <- '\1A\2'
gsub(lhs, rhs, text, perl=TRUE)
当我选择 n 较小时,例如5、代码运行正常。但是,如果 n = 66000
显示以下错误消息:
In gsub(lhs, rhs, text, perl = TRUE) : PCRE pattern compilation error
'number too big in {} quantifier'
at '})(.*)$'
我该如何解决这个问题?
由于模式长度限制,您似乎无法在此处使用 sub
。但实际上,对于这个问题,基本字符串函数应该可以工作,而且可能会更有效率:
insertA <- function(x, n) {
return(paste0(substring(x, 1, n-1), "A", substring(x, n, nchar(x))))
}
text <- paste(rep("a", 30), collapse = "")
insertA(text, 5)
[1] "aaaaAaaaaaaaaaaaaaaaaaaaaaaaaaa"
这种方法简单地使用 substring
和 paste
将 A
字符分成用户选择的两半。
我想将子字符串 "A"
插入长度 > 65536 的字符串中,位置 n
。我正在使用 gsub 来执行此操作,因为它非常高效。
n = 5
text <- paste(rep("a", 70000), collapse = "")
lhs <- '^(.{n})(.*)$'
rhs <- '\1A\2'
gsub(lhs, rhs, text, perl=TRUE)
当我选择 n 较小时,例如5、代码运行正常。但是,如果 n = 66000
显示以下错误消息:
In gsub(lhs, rhs, text, perl = TRUE) : PCRE pattern compilation error
'number too big in {} quantifier'
at '})(.*)$'
我该如何解决这个问题?
由于模式长度限制,您似乎无法在此处使用 sub
。但实际上,对于这个问题,基本字符串函数应该可以工作,而且可能会更有效率:
insertA <- function(x, n) {
return(paste0(substring(x, 1, n-1), "A", substring(x, n, nchar(x))))
}
text <- paste(rep("a", 30), collapse = "")
insertA(text, 5)
[1] "aaaaAaaaaaaaaaaaaaaaaaaaaaaaaaa"
这种方法简单地使用 substring
和 paste
将 A
字符分成用户选择的两半。