Hi,
I'd like to know if it is possible to use wildcards * for indexing...
E.g. I have a vector of strings. Now I'd like to select all elements
which start with A_*? I'd also need to combine that with logical operators:
"Select all elements of a vector that start with A (A*) OR that start with
B (B*)"
Probably that is quite easy. I looked into grep() which I think might perform
such tasks, but probably there is a more straigth forward solution.
a <-
c("A_A","A_B","C_A","BB","A_Asd")
a[a=="A_A"| a=="A_B"] # here I'd like an index but with
wildcard
/johannes
--
On 14/02/2012 9:54 AM, Johannes Radinger wrote:> Hi, > > I'd like to know if it is possible to use wildcards * for indexing... > E.g. I have a vector of strings. Now I'd like to select all elements > which start with A_*? I'd also need to combine that with logical operators: > > "Select all elements of a vector that start with A (A*) OR that start with B (B*)" > > Probably that is quite easy. I looked into grep() which I think might perform such tasks, but probably there is a more straigth forward solution. > > a<- c("A_A","A_B","C_A","BB","A_Asd") > a[a=="A_A"| a=="A_B"] # here I'd like an index but with wildcardTry grepl(): a[grepl("^[AB]", a)] is probably the simplest way for your example. Duncan Murdoch
I think the grep()-family (regular expressions) will be the easiest
way to do this, though it sounds like you might prefer grepl() which
returns a logical vector:
^[AB] # Starts with either an A or a B
^A_ # Starting with A_
a <-
c("A_A","A_B","C_A","BB","A_Asd"
grepl("^[AB]", a)
grepl("^A_")
Michael
On Tue, Feb 14, 2012 at 9:54 AM, Johannes Radinger <JRadinger at gmx.at>
wrote:> Hi,
>
> I'd like to know if it is possible to use wildcards * for indexing...
> E.g. I have a vector of strings. Now I'd like to select all elements
> which start with A_*? I'd also need to combine that with logical
operators:
>
> "Select all elements of a vector that start with A (A*) OR that start
with B (B*)"
>
> Probably that is quite easy. I looked into grep() which I think might
perform such tasks, but probably there is a more straigth forward solution.
>
> a <-
c("A_A","A_B","C_A","BB","A_Asd")
> a[a=="A_A"| a=="A_B"] # here I'd like an index but
with wildcard
>
> /johannes
> --
>
> ______________________________________________
> 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, On Tue, Feb 14, 2012 at 9:54 AM, Johannes Radinger <JRadinger at gmx.at> wrote:> Hi, > > I'd like to know if it is possible to use wildcards * for indexing... > E.g. I have a vector of strings. Now I'd like to select all elements > which start with A_*? I'd also need to combine that with logical operators: > > "Select all elements of a vector that start with A (A*) OR that start with B (B*)" > > Probably that is quite easy. I looked into grep() which I think might perform such tasks, but probably there is a more straigth forward solution. > > a <- c("A_A","A_B","C_A","BB","A_Asd") > a[a=="A_A"| a=="A_B"] # here I'd like an index but with wildcardDo you want elements that start with A or B, as you state above, or elements that start with A_A or A_B as here? Either way, this is a job for grepl(), and it is quite easy:> a <- c("A_A","A_B","C_A","BB","A_Asd") > > grepl("^[AB]", a)[1] TRUE TRUE FALSE TRUE TRUE> grepl("^A_[AB]", a)[1] TRUE TRUE FALSE FALSE TRUE Sarah -- Sarah Goslee http://www.functionaldiversity.org
Seemingly Similar Threads
- alloca combining, not (yet) possible ?
- alloca combining, not (yet) possible ?
- RFC: alloca -- specify rounding factor for allocation (and more)
- Why is as.function() slower than eval(call("function"())?
- listing the files in a directory using regular expressions