grepl函数-组合开始字符串和结束字符串

grepl函数-组合开始字符串和结束字符串,r,R,在过去的两个小时里,我一直在努力想办法解决这个问题,但我想不出来 我得到一个变量,它以4个字母开头,以2个数字结尾 现在我只想对那些以KJHB开头,以20-33之间的数字结尾的部分进行子集 我尝试的功能是: df <- mydata x <- seq(20,33) df2 <- subset(df, grepl('^KJHB & x$, col1)) df您可以尝试stringr。这并不能确切地检查它是字符串的开头还是结尾,但如果它是一个统一的模式,这可能会很有用:

在过去的两个小时里,我一直在努力想办法解决这个问题,但我想不出来

我得到一个变量,它以4个字母开头,以2个数字结尾

现在我只想对那些以KJHB开头,以20-33之间的数字结尾的部分进行子集

我尝试的功能是:

df <- mydata
x <- seq(20,33)
df2 <- subset(df, grepl('^KJHB & x$, col1))

df您可以尝试
stringr
。这并不能确切地检查它是字符串的开头还是结尾,但如果它是一个统一的模式,这可能会很有用:

my_match = function(string, start_string, num_seq){
   return( str_extract(string, start_string) && 
           any( !is.na( str_extract(string, as.character(num_seq)) ))
}

is_matched = my_match(df$your_col, "KJHB", 20:33)
df2 = df1[ is_matched, ]

用str\u locate也可以做一些更聪明的事情。

好吧,我想出了一个不完全正确的答案,但它对我有用

x <- paste("KJHB",seq(20,33), sep = "")
x <- as.data.frame(table(x))
df2 <- subset(df, col1 %in% x$x)

x什么是
mydata
?尝试使用
grepl(“^[A-Z]{4}.[0-9]{2}$”,col1)
oh sorry
mydata
就是我从名为
col1
的列中得到的数据帧。您是否建议在
[0-9]
中使用我刚刚编写的
[20-33]
?不,您不能编写
[20-33]
正则表达式,因为它可能是“^KJHB.*(2[0-9])|(3[0123])$”,虽然我对rI一无所知,但我只是在@Secespitus尝试了一下,但没有运气:我在gov PC上工作,他们不允许任何软件包安装,我发誓你能在
base R
中提供-