In the sense - it does not work. it works when there are 50 samples
in the file, but it does not work when there is one.
The usual headings are: sample1.at sample1.dp
sample1.fg sample2.at sample2.dp sample2.fg.... and so on to a max of
sample50.at sample50.dp sample50.fg
using this greps out all the .at columns perfectly:
df[,grep(".at",colnames(df))]
When I come across a file when there is one sample:
sample1.at sample1.dp sample1.fg
Using this:
df[,grep(".at",colnames(df))]
returns nothing.
Oh - AT/at was just an example... thats not my problem...
On Tue, Oct 14, 2014 at 10:57 AM, Jeff Newmiller
<[email protected]> wrote:
> Your question is missing a reproducible example, and you don't say how it
> does not work, so we cannot tell what is going on.
>
> Two things do come to mind, though.
>
> A) Data frame subsets with only one column by default return a vector, which
> is a different type of object than a single-column data frame. You would need
> to read ?"[.data.frame" about the "drop" argument if you wanted to
> consistently get a data frame from this expression.
>
> B) The period is a wildcard in regular expressions. If you expect to limit
> your search to literal ".at" at the end of the name then you should use the
> search pattern "\\.at$" instead (the first slash allows the second one to be
> stored by R in the string, and the second one is the only one seen by grep,
> which it reads as making the period not act like a wildcard). You really
> should read about regular expressions before using them. There are many
> tutorials on the web about this topic.
>
> ---------------------------------------------------------------------------
> Jeff Newmiller The ..... ..... Go Live...
> DCN:<[email protected]> Basics: ##.#. ##.#. Live Go...
> Live: OO#.. Dead: OO#.. Playing
> Research Engineer (Solar/Batteries O.O#. #.O#. with
> /Software/Embedded Controllers) .OO#. .OO#. rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
>
> On October 14, 2014 7:23:55 AM PDT, Kate Ignatius <[email protected]>
> wrote:
>>I'm having an issue with grep:
>>
>>I have numerous columns that end with .at... when I use grep like so:
>>
>>df[,grep(".at",colnames(df))]
>>
>>it works fine. When I have one column that ends with .at, it does not
>>work. Why is that? As this is loop with varying number of columns
>>ending in .at I would like some code that would work with 1 to n
>>number of columns.
>>
>>Is there something more optimal than grep?
>>
>>Thanks!
>>
>>______________________________________________
>>[email protected] 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.
>
______________________________________________
[email protected] 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.