Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-选择正则表达式_R_Regex - Fatal编程技术网

R-选择正则表达式

R-选择正则表达式,r,regex,R,Regex,我想选择可以找到表达式“X01”或“X02”的每一行: dataEx您是否愿意使用stringr包?我同意Jaskeil的观点,我倾向于选择data.table而不是data.frame,但这主要是为了提高执行速度。不确定这是否会成为您申请的一个问题 library(stringr) dataEx <- data.frame(code = c("X01-X043","X034","X024","X015-X036-X03

我想选择可以找到表达式“X01”或“X02”的每一行:


dataEx您是否愿意使用stringr包?我同意Jaskeil的观点,我倾向于选择data.table而不是data.frame,但这主要是为了提高执行速度。不确定这是否会成为您申请的一个问题

library(stringr)
dataEx <- data.frame(code = c("X01-X043","X034","X024","X015-X036-X033","X012","X015-X042","X019","X036","X022-X043"),res = NA )
dataEx$res <- str_extract(dataEx$code, "((^|-)X01($|-|.))|((^|-)X02($|-|.))")
库(stringr)
dataEx您可以执行以下操作:

a <- regmatches(dataEx$code, gregexpr(paste(pat1, collapse = "|"), dataEx$code))
is.na(a)<-lengths(a)==0

dataEx$res <- unlist(a)

a您可以通过以下方式使用
stru extract

library(stringr)
dataEx$res <- str_extract(dataEx$code, "X0(1|2)\\d?")
library(stringr)
dataEx <- data.frame(code = c("X01-X043","X034","X024","X015-X036-X033","X012","X015-X042","X019","X036","X022-X043"),res = NA )
dataEx$res <- str_extract(dataEx$code, "((^|-)X01($|-|.))|((^|-)X02($|-|.))")
a <- regmatches(dataEx$code, gregexpr(paste(pat1, collapse = "|"), dataEx$code))
is.na(a)<-lengths(a)==0

dataEx$res <- unlist(a)
library(stringr)
dataEx$res <- str_extract(dataEx$code, "X0(1|2)\\d?")
dataEx
            code  res
1       X01-X043  X01
2           X034 <NA>
3           X024 X024
4 X015-X036-X033 X015
5           X012 X012
6      X015-X042 X015
7           X019 X019
8           X036 <NA>
9      X022-X043 X022