问问题
60 次
3 回答
1
你可以这样做:
part <- sub(paste(sep="","(^[a-zA-Z]{",var,"}).*$"), "\\1", "My String", perl=T)
于 2013-03-27T16:54:15.907 回答
1
我喜欢用sprintf
这个。var
如果不是数字,它将引发错误。
var <- 2
pat <- "(^[a-zA-Z]{%d}).*$"
pat <- sprintf(pat, var)
于 2013-03-27T17:07:27.363 回答
0
如果我们使用 gsubfn 包中的命令fn$
开头,那么我们可以使用$var
来引用要替换的变量:
library(gsubfn)
var <- 2
fn$sub("(^[a-zA-Z]{$var}).*$", "\\1", "My String")
或strapplyc
从同一个包中使用,在这种情况下,可以简化正则表达式:
fn$strapplyc("My String", "^[a-zA-Z]{$var}", simplify = TRUE)
我认为这只是一个例子,真正的问题更复杂,但如果这是真正的问题,那么它更容易并且可能足以使用substring
:
var <- 2
substring("My String", 1, var)
于 2013-03-27T17:05:16.427 回答