Zhipeng Wang
2012-Jun-23 10:19 UTC
[R] matching a string with multiple conditions using grep
Suppose I have a vector ["A_cont_1", "A_cont_12", "B_treat_8", "AB_cont_22", "cont_21_Aa"], I hope I can extract the strings which include 3 short strings, say "A", "cont" and "2", that is to say, "A_cont_12", "AB_cont_22" and "cont_21_Aa" will be extract, using a relatively short code (using grep?). Would you please to give some idea? Thank you ! [[alternative HTML version deleted]]
Rui Barradas
2012-Jun-23 10:52 UTC
[R] matching a string with multiple conditions using grep
Hello,
Try the following.
wanted <- c("A_cont_12", "AB_cont_22",
"cont_21_Aa")
x <- c("A_cont_1", "A_cont_12", "B_treat_8",
"AB_cont_22", "cont_21_Aa")
pattern <- c("A", "cont", "2")
ix <- Reduce(`&`, lapply(pattern, grepl, x)) # This does the trick
identical(wanted, x[ix])
See ?Reduce.
Hope this helps,
Rui Barradas
Em 23-06-2012 11:19, Zhipeng Wang escreveu:> Suppose I have a vector ["A_cont_1", "A_cont_12",
"B_treat_8",
> "AB_cont_22", "cont_21_Aa"], I hope I can extract the
strings which include
> 3 short strings, say "A", "cont" and "2",
that is to say, "A_cont_12",
> "AB_cont_22" and "cont_21_Aa" will be extract, using a
relatively short
> code (using grep?).
> Would you please to give some idea? Thank you !
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Hi,
Try this:
vec1<-c("A_cont_1", "A_cont_12", "B_treat_8",
"AB_cont_22", "cont_21_Aa")
vec2<-grep("(A){0,1}.*cont.*2",vec1)
vec1[vec2]
[1] "A_cont_12"? "AB_cont_22" "cont_21_Aa"
A.K.
----- Original Message -----
From: Zhipeng Wang <wangz at kuhp.kyoto-u.ac.jp>
To: r-help at r-project.org
Cc:
Sent: Saturday, June 23, 2012 6:19 AM
Subject: [R] matching a string with multiple conditions using grep
Suppose I have a vector? ["A_cont_1", "A_cont_12",
"B_treat_8",
"AB_cont_22", "cont_21_Aa"], I hope I can extract the
strings which include
3 short strings, say "A", "cont" and "2",? that is
to say, "A_cont_12",
"AB_cont_22" and? "cont_21_Aa" will be extract, using a
relatively short
code (using grep?).
Would you please to give some idea? Thank you !
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Possibly Parallel Threads
- Connect observed values by a smooth curve, is there any method to get coordinate value of arbitrary point on the curve?
- Error in get(Info[i, 1], envir = env) : internal error -3 in R_decompress1
- kernel oops when sync after rm a file at full disk
- [ANNOUNCE] intel-gpu-tools 1.10
- Wine release 5.0.2