[R] Selecting columns whose names contain "mutated" except when they also contain "non" or "un"

Martin Maechler maechler at stat.math.ethz.ch
Fri Apr 27 10:20:09 CEST 2012


>>>>> David Winsemius <dwinsemius at comcast.net>
>>>>>     on Mon, 23 Apr 2012 12:16:39 -0400 writes:

    > On Apr 23, 2012, at 12:10 PM, Paul Miller wrote:

    >> Hello All,
    >> 
    >> Started out awhile ago trying to select columns in a
    >> dataframe whose names contain some variation of the word
    >> "mutant" using code like:
    >> 
    >> names(KRASyn)[grep("muta", names(KRASyn))]
    >> 
    >> The idea then would be to add together the various
    >> columns using code like:
    >> 
    >> KRASyn$Mutant_comb <- rowSums(KRASyn[grep("muta",
    >> names(KRASyn))])
    >> 
    >> What I discovered though, is that this selects columns
    >> like "nonmutated" and "unmutated" as well as columns like
    >> "mutated", "mutation", and "mutational".
    >> 
    >> So I'd like to know how to select columns that have some
    >> variation of the word "mutant" without the "non" or the
    >> "un". I've been looking around for an example of how to
    >> do that but haven't found anything yet.
    >> 
    >> Can anyone show me how to select the columns I need?

    > If you want only columns whose names _begin_ with "muta"
    > then add the "^" character at the beginning of your
    > pattern:

    > names(KRASyn)[grep("^muta", names(KRASyn))]

    > (This should be explained on the ?regex page.)

It *is* !    Search for "beginning" and you're there.
Martin

    > David Winsemius, MD West Hartford, CT



More information about the R-help mailing list