[R] GREP - Choosing values between two borders
jim holtman
jholtman at gmail.com
Wed Apr 18 13:05:57 CEST 2007
Another way you can do it, if the data has the pattern shown in your
sample, it to select all the lines that start with a numeric:
> input <- "######## FILE-CONTENT ##############
+ EXAM NUM:2
+ -----------------
+ EXAM #1
+ ASTIG:-2.4D
+ AXIS:4.8
+ START OF HEIGHT DATA
+ 0 0.0 0.00000000
+ 0 0.1 0.00055643
+ 9 4.9 1.67278117
+ 9 5.0 1.74873257
+ 10 0.0 0.00000000
+ 10 0.1 0.00075557
+ 99 5.3 1.94719490
+ END OF HEIGHT DATA
+ X POS:-0.299mm
+ Y POS:0.442mm
+ Z POS:-0.290mm
+ -----------------
+ EXAM #2
+ ASTIG:-2.4D
+ AXIS:4.8
+ START OF HEIGHT DATA
+ 0 0.0 0.00000000
+ 0 0.1 0.00055643
+ 9 4.9 1.67278117
+ 9 5.0 1.74873257
+ 10 0.0 0.00000000
+ 10 0.1 0.00075557
+ 99 5.3 1.94719490
+ END OF HEIGHT DATA
+ X POS:-0.299mm
+ Y POS:0.442mm
+ Z POS:-0.290mm
+ "
> x <- readLines(textConnection(input))
> x <- x[grep("^\\s*\\d", x, perl=TRUE)]
> x.in <- scan(textConnection(x), what=0)
Read 42 items
> x.in <- matrix(x.in, ncol=3, byrow=TRUE)
> x.in
[,1] [,2] [,3]
[1,] 0 0.0 0.00000000
[2,] 0 0.1 0.00055643
[3,] 9 4.9 1.67278117
[4,] 9 5.0 1.74873257
[5,] 10 0.0 0.00000000
[6,] 10 0.1 0.00075557
[7,] 99 5.3 1.94719490
[8,] 0 0.0 0.00000000
[9,] 0 0.1 0.00055643
[10,] 9 4.9 1.67278117
[11,] 9 5.0 1.74873257
[12,] 10 0.0 0.00000000
[13,] 10 0.1 0.00075557
[14,] 99 5.3 1.94719490
>
>
On 4/17/07, Felix Wave <felix-wave at vr-web.de> wrote:
> Hello,
> I import datas from an file with: readLines
> But I need only a part of all measurments of this file. These are between
> two borders "START" and "END".
>
> Can you tell me the syntax of grep(), to choose values between two borders?
>
> My R Code was not succesful, and I can't finde anything in the help.
>
> Thank's a lot.
>
> Felix
>
>
>
>
> ######### R-CODE ###################
> file <- "file-content"
> Measure <- grep("[START-END]",file)
> #Measure <- grep("[START|END]",file)
>
>
>
> ######## FILE-CONTENT ##############
> EXAM NUM:2
> -----------------
> EXAM #1
> ASTIG:-2.4D
> AXIS:4.8
> START OF HEIGHT DATA
> 0 0.0 0.00000000
> 0 0.1 0.00055643
> 9 4.9 1.67278117
> 9 5.0 1.74873257
> 10 0.0 0.00000000
> 10 0.1 0.00075557
> 99 5.3 1.94719490
> END OF HEIGHT DATA
> X POS:-0.299mm
> Y POS:0.442mm
> Z POS:-0.290mm
> -----------------
> EXAM #2
> ASTIG:-2.4D
> AXIS:4.8
> START OF HEIGHT DATA
> 0 0.0 0.00000000
> 0 0.1 0.00055643
> 9 4.9 1.67278117
> 9 5.0 1.74873257
> 10 0.0 0.00000000
> 10 0.1 0.00075557
> 99 5.3 1.94719490
> END OF HEIGHT DATA
> X POS:-0.299mm
> Y POS:0.442mm
> Z POS:-0.290mm
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem you are trying to solve?
More information about the R-help
mailing list