Hi: This seems to be easier to pull off if x is a data frame rather than a matrix. x <- data.frame(GCM = c("BA1y1","BA2y3","C3A1r1y1","C3A2r2y2t4","C3r2y1y1"), y = c(1:3, 11, 12), stringsAsFactors = FALSE) x$val <- as.numeric(substring(lapply(strsplit(x$GCM, 'y'), '[', 2), 1, 1))
This assumes you want the numeric value after the first occurrence of y. It works as follows: * use strsplit() to split the GCM string using y as a separator, generating list object; * run lapply() over the list and extract the second element, which is the string following the first occurrence of y; * use substring() to extract the first character and then coerce the result to be numeric. Output: > x GCM y val a BA1y1 1 1 b BA2y3 2 3 c C3A1r1y1 3 1 d C3A2r2y2t4 11 2 e C3r2y1y1 12 1 HTH, Dennis On Mon, Apr 26, 2010 at 10:10 PM, Daisy Englert Duursma < daisy.duur...@gmail.com> wrote: > Hello, > > Thanks for your help, I have played around with the suggestion a bit > but I can still not sub-setting in the way I need > > If I have a matrix x as follows: > > > x <- matrix(c("BA1y1","BA2y3","C3A1r1y1","C3A2r2y2t4","C3r2y1y1",1,2,3, > 11,12) > , nrow=5, ncol=2, > dimnames=list(c("a","b","c","d","e"), c("GCM","y"))) > > x > GCM y > a "BA1y1" "1" > b "BA2y3" "2" > c "C3A1r1y1" "3" > d "C3A2r2y2t4" "11" > e "C3r2t1y1" "12" > > and I want to loop through 3 subsets based on the numeric value after > the y, how do I do this? > > What I currently have is: > > year <-c("1", "2", "3") > > for (y in year) { > > subx <- x[sapply(strsplit(as.character(x$GCM), ""), function(zzz)zzz[5] > == y),] > } > Basically this loops through and subsets the rows when the 5th > character has the defined y value (1, 2,or 3). The problem is that y > can occur anywhere in the GCM value. > > Thanks for the help. > Daisy > -- > Daisy Englert Duursma > > Room E8C156 > Dept. Biological Sciences > Macquarie University NSW 2109 > Australia > > Tel +61 2 9850 9256 > > ______________________________________________ > R-help@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@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.