1
4

3 回答 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 回答