[R] Selecting rows based on contents of string

David Winsemius dwinsemius at comcast.net
Thu Apr 29 02:47:15 CEST 2010


On Apr 28, 2010, at 3:07 AM, Albert-Jan Roskam wrote:

> Hi,
>
> There's probably an easier or more readable way to do it, but:
> df <- data.frame(cbind(letters, var= runif(26, 2, 3)))
> df[df$letters[grep("[G]", df$letters, ignore.case=TRUE)],]

To my eyes that appears a bit redundant. Wouldn't this approach with  
one less "layer" work just as well:

df[ grep("[G]", df$letters, ignore.case=TRUE), ]


>
> Cheers!!
> Albert-Jan
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> All right, but apart from the sanitation, the medicine, education,  
> wine, public order, irrigation, roads, a fresh water system, and  
> public health, what have the Romans ever done for us?
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> --- On Wed, 4/28/10, Alexis Champsaur <alexis.champsaur at gmail.com>  
> wrote:
>
>
> From: Alexis Champsaur <alexis.champsaur at gmail.com>
> Subject: [R] Selecting rows based on contents of string
> To: r-help at stat.math.ethz.ch
> Date: Wednesday, April 28, 2010, 1:49 AM
>
>
> Hi there,
> I have a data frame with a column named "Flags", whose contents are  
> strings
> containing any of the following characters, multiple characters  
> allowed:
> A,B,C,D,E,F,G.
>
> Here is the head:
>     GeocodeID PlaceID CountyCode CBSACode StateProvCode  
> PropertyTypeGroupID
> Flags
> 1           0       0                0            0
> AK                   1                              ABC
> 2           0       0                0            0
> AK                   2                              AC
> 3           0       0                0            0
> AK                   3                              BC
> 4           0       0                0            0
> AK                   4                              CD
> 5           0       0                0            0
> AK                  14                             CD
> 6           0       0                0            0
> AK                  15                             ACDE
> 7           0       0                0            0
> AL                   1
>
> I want to select only the rows whose "Flag" element contains the  
> character
> G. Is there a simple way to do this, or should I perhaps come up  
> with a
> different system of flags, which is totally up to me?
>
> Thanks,
>
> Alex
>
>     [[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.
>
>
>
>
> 	[[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.



More information about the R-help mailing list