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 <
[email protected]> 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
>
> ______________________________________________
> [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.
>
[[alternative HTML version deleted]]
______________________________________________
[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.