Hello R-users, I have a very large vector (a) containing elements consisting of numbers and letters, this is the i.e. a [1] "1.11.2a" "1.11.2d" "1.11.2e" "1.11.2f" "1.11.2x1" "1.11.2x1b" [7] "1.11.2x2" "1.11.2x2a" "1.11.2x2b" "1.11.2x3" "1.11.2x4" "1.11.2x4a" [13] "1.11.2x5" "1.11.3a" "1.11.3b" "1.11.3x1" "1.11.3x1b" "1.11.3x1c" [19] "1.11.3x1d" "1.12.1x1" "1.12.1x1b" "1.12.1x2" "1.12.1x3" "1.12.1x3b" [25] "1.12.1x4" "1.3.1x1" "1.3.4x1" "1.3.6a" "1.3.6c" "1.3.6x1" [31] "1.3.6x1a" "1.3.6x1b" "1.3.6x1c" "1.3.6x1d" "1.3.6x1e" "1.3.6x2" [37] "1.3.7a" "1.3.7b" "1.3.7c" "1.3.7d" "1.5.4a" "1.5.4b" [43] "1.5.4x1a" "1.5.4x1b" "1.5.4x2" "1.5.4x3" "1.5.4x6" "1.5.5b" [49] "1.5.6a" "1.5.6b" "1.5.6x1" "1.5.6x2" "1.5.7a" "1.5.7b" [55] "1.5.7x1" "1.5.7x2" "1.7.1b" "1.7.1c" "1.7.1e" "1.7.1f" [61] "1.7.1g" "1.7.1i" "1.7.1j" "1.7.1k" "1.7.1x1" "1.7.1x2" [67] "1.7.1x3" "1.7.1x4" "1.7.1x5" "1.7.2b" "1.7.2x1" "1.9.1a" How can I remove from each record everything that is after the number after the second dot? E.g.: 1.11.2a becomes 1.11.2, 1.12.1x4 becomes 1.12.1, 1.9.1a becomes 1.9.1...and so forth. Thanks Lorenzo Lorenzo Cattarino PhD Candidate (Confirmed) Landscape Ecology and Conservation Group Centre for Spatial Environmental Research School of Geography, Planning and Environmental Management The University of Queensland Brisbane, Queensland, 4072, Australia Telephone 61-7-3365 4370, Mobile 0410884610 Email l.cattarino@uq.edu.au Internet http://www.gpem.uq.edu.au/cser <http://www.gpem.uq.edu.au/cser> [[alternative HTML version deleted]]
Here is one way
a_clip <- sub("^([0-9]+\\.[0-9]+\\.[0-9]+).*$", "\\1",
a)
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On Behalf Of Lorenzo Cattarino
Sent: Tuesday, 13 July 2010 5:20 PM
To: r-help at r-project.org
Subject: [R] modifying vector elements
Hello R-users,
I have a very large vector (a) containing elements consisting of numbers
and letters, this is the i.e.
a
[1] "1.11.2a" "1.11.2d" "1.11.2e"
"1.11.2f" "1.11.2x1"
"1.11.2x1b"
[7] "1.11.2x2" "1.11.2x2a" "1.11.2x2b"
"1.11.2x3" "1.11.2x4"
"1.11.2x4a"
[13] "1.11.2x5" "1.11.3a" "1.11.3b"
"1.11.3x1" "1.11.3x1b"
"1.11.3x1c"
[19] "1.11.3x1d" "1.12.1x1" "1.12.1x1b"
"1.12.1x2" "1.12.1x3"
"1.12.1x3b"
[25] "1.12.1x4" "1.3.1x1" "1.3.4x1"
"1.3.6a" "1.3.6c"
"1.3.6x1"
[31] "1.3.6x1a" "1.3.6x1b" "1.3.6x1c"
"1.3.6x1d" "1.3.6x1e"
"1.3.6x2"
[37] "1.3.7a" "1.3.7b" "1.3.7c"
"1.3.7d" "1.5.4a"
"1.5.4b"
[43] "1.5.4x1a" "1.5.4x1b" "1.5.4x2"
"1.5.4x3" "1.5.4x6"
"1.5.5b"
[49] "1.5.6a" "1.5.6b" "1.5.6x1"
"1.5.6x2" "1.5.7a"
"1.5.7b"
[55] "1.5.7x1" "1.5.7x2" "1.7.1b"
"1.7.1c" "1.7.1e"
"1.7.1f"
[61] "1.7.1g" "1.7.1i" "1.7.1j"
"1.7.1k" "1.7.1x1"
"1.7.1x2"
[67] "1.7.1x3" "1.7.1x4" "1.7.1x5"
"1.7.2b" "1.7.2x1"
"1.9.1a"
How can I remove from each record everything that is after the number
after the second dot? E.g.:
1.11.2a becomes 1.11.2, 1.12.1x4 becomes 1.12.1, 1.9.1a becomes
1.9.1...and so forth.
Thanks
Lorenzo
Lorenzo Cattarino
PhD Candidate (Confirmed)
Landscape Ecology and Conservation Group
Centre for Spatial Environmental Research
School of Geography, Planning and Environmental Management
The University of Queensland
Brisbane, Queensland, 4072, Australia
Telephone 61-7-3365 4370, Mobile 0410884610
Email l.cattarino at uq.edu.au
Internet http://www.gpem.uq.edu.au/cser <http://www.gpem.uq.edu.au/cser>
[[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.
On Tue, Jul 13, 2010 at 3:20 AM, Lorenzo Cattarino <l.cattarino at uq.edu.au> wrote:> Hello R-users, > > > > I have a very large vector (a) containing elements consisting of numbers > and letters, this is the ?i.e. > > a > > [1] "1.11.2a" ? ? "1.11.2d" ? ? "1.11.2e" ? ? "1.11.2f" ? ? "1.11.2x1" > "1.11.2x1b" >[...]> > How can I remove from each record everything that is after the number > after the second dot? E.g.: > > 1.11.2a becomes 1.11.2, 1.12.1x4 becomes 1.12.1, 1.9.1a becomes > 1.9.1...and so forth.If they are all of the form shown then the question is equivalent to removing the first alphabetic character, [[:alpha:]], and everything thereafter (.*) which is just this. sub("[[:alpha:]].*", "", a)