[R] i-best, grep function

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Wed May 7 12:43:41 CEST 2008


> T1 <- read.delim(file="S://SEDIM//Yvonne//2_5//T1.txt",col.names= 
> c("Dye/Sample_Peak", "Sample_File_Name", "Size", "Height", 
> "Area_in_Point", "Area_in_BP", "Data_Point", "Begin_Point", 
> "Begin_BP", "End_Point", "End_BP", "Width_in_Point", "Width_in_BP", 
> "User_Comments", "User_Edit"))
> T1 <- subset(T1, Size < 1000 & Size > 50)
> T1.B <- cbind(T1[grep("^B", as.character(T1$Color),perl=T),3],
> T1[grep("^B", as.character(T1$Color),perl=T),5])
> T1.B <- cbind(T1.B, T1.B[,2]/sum(T1.B[,2]))
> 
> 
> It works alright until the last two lines.  I try to grep the 
> columns 3 and 5, but the outcome is 
>  T1.B
>      [,1] [,2]. 
> I don´t quite understand the code of as.character(t1$Color), perl=T.

T1 is a data frame, and T1$Color is one of the columns.

as.character converts the column T1$Color from type factor to type 
character (i.e. a vector of strings).

grep("^B", as.character(T1$Color),perl=T) means 'find all strings in the 
vector T1$Color that begin with the letter (capital) B'.  "^B" is an 
example of a regular expression.  There is a very good guide to them here: 
http://www.regular-expressions.info/quickstart.html

The relevant help pages in R are ?grep and ?regexp.  Don't worry about the 
parameter perl=TRUE; there are subtle variations on regular expression 
syntax, and it just means that you follow PERL-style syntax.

Regards,
Richie.

Mathematical Sciences Unit
HSL

------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:21}}



More information about the R-help mailing list