Thank you very much!
It worked nicely.
Best!
Giovanni
On Aug 27, 2012, at 4:18 PM, jim holtman wrote:
> try this:
>
>
> > input <- readLines(textConnection("Iteration Jmin Error Elapsed
> > Corral Duality Gap Step1 Step2 Step3 Step4
> + 2 2 0.000000e+00 1.912976e-03 1 0.000000e+00
> 1.779780e-03 7.214600e-05 1.243600e-05 2.246700e-05
> +
> ../test/genmoons_data/logdet_two_moons_n10.txt,2,2,1.754115e-02,0.000000e+00,9.799000e+03,0.000000e+00,5.586293e-01,0.000000e+00
> + Iteration Jmin Error Elapsed Corral Duality Gap Step1
> Step2 Step3 Step4
> + 4 9 0.000000e+00 1.280841e-03 2 -7.105427e-15
> 9.557570e-04 2.301610e-04 1.571100e-05 2.177300e-05
> +
> ../test/genmoons_data/logdet_two_moons_n20.txt,4,5,6.062756e-03,0.000000e+00,1.365970e+05,0.000000e+00,2.253051e+01,0.000000e+00
> + Iteration Jmin Error Elapsed Corral Duality Gap Step1
> Step2 Step3 Step4
> + 10 32 3.133476e-03 6.075853e-03 8 4.057531e-01
> 1.613035e-03 3.956920e-03 3.077200e-05 4.390900e-05
> + 20 28 5.597685e-04 4.376530e-03 16 4.711146e-03
> 0.000000e+00 4.390998e-03 2.229600e-05 2.517100e-05
> + 30 27 1.148159e-04 4.357923e-03 22 8.408166e-06
> 0.000000e+00 4.326610e-03 2.697700e-05 3.233200e-05
> + 40 27 4.036778e-05 4.388260e-03 29 2.529294e-07
> 0.000000e+00 4.329726e-03 2.713000e-05 3.558400e-05
> + 50 27 1.840383e-05 4.357373e-03 36 1.341111e-07
> 0.000000e+00 4.327526e-03 3.097000e-05 3.255700e-05
> + 53 27 0.000000e+00 1.322382e-03 36 -2.842171e-14
> 0.000000e+00 1.327239e-03 1.420400e-05 2.043500e-05
> +
> ../test/genmoons_data/logdet_two_moons_n64.txt,53,69,3.330987e-02,0.000000e+00,2.229830e+07,0.000000e+00,6.694201e+02,0.000000e+00
> + Iteration Jmin Error Elapsed Corral Duality Gap Step1
> Step2 Step3 Step4
> + 10 70 7.739525e-03 2.389529e-02 8 1.494829e+00
> 2.975209e-03 1.873082e-02 4.713600e-05 5.837200e-05
> + 20 74 3.379192e-03 2.084753e-02 15 3.372041e-01
> 0.000000e+00 2.084637e-02 4.302400e-05 3.907800e-05
> + 30 76 1.322821e-03 2.093204e-02 21 1.018845e-01
> 0.000000e+00 2.083170e-02 4.704100e-05 5.707100e-05
> + 40 78 1.176950e-03 2.095179e-02 28 2.447970e-02
> 0.000000e+00 2.088284e-02 4.890700e-05 4.955100e-05
> + 50 78 2.233669e-04 2.050571e-02 35 1.573952e-02
> 0.000000e+00 2.045954e-02 4.046600e-05 3.899000e-05
> + 60 78 2.167956e-04 2.095130e-02 39 8.362982e-03
> 0.000000e+00 2.082586e-02 6.699700e-05 8.506400e-05
> + 70 78 2.085968e-04 2.085355e-02 46 5.135190e-03
> 0.000000e+00 2.083204e-02 5.432900e-05 4.078600e-05
> + 80 78 2.570800e-04 2.044932e-02 51 5.470225e-04
> 0.000000e+00 2.033571e-02 5.334200e-05 5.318400e-05
> + 81 78 0.000000e+00 2.099610e-03 51 1.421085e-14
> 0.000000e+00 2.100072e-03 9.147000e-06 2.324800e-05
> +
> ../test/genmoons_data/logdet_two_moons_n9999.txt,4,5,6.062756e-03,0.000000e+00,1.365970e+05,0.000000e+00,2.253051e+01,0.000000e+00"))
> > closeAllConnections()
> >
> > # remove headers
> > input <- input[!grepl("^Iteration", input)]
> >
> > # extract the file names
> > files <- input[grepl("^\\.\\.", input)]
> >
> > # add separation based on file name
> > x <- cumsum(grepl("^\\.\\.", input))
> >
> > # prepend separation onto the input
> > input <- paste(x, input)
> >
> > # remove the file names
> > input <- input[!grepl("\\.\\.", input)]
> >
> > # extract 'n' from the file names
> > n <- as.integer(sub(".*_n([0-9]+).*", "\\1", files))
> >
> > # read the modified data back in
> > tempFile <- tempfile()
> > writeLines(input, tempFile)
> > newInput <- read.table(tempFile)
> >
> > # replace first column with 'n'
> > newInput[[1]] <- n[newInput[[1]] + 1L]
> >
> > names(newInput) <- c('n', 'iter', 1,2,3,4,5,'Step1', 'Step2', 'Step3',
> > 'Step4')
> >
> > require(reshape2)
> > x <- melt(newInput, id = c('n', 'iter'), measure =
> > c('Step1','Step2','Step3', 'Step4'))
> > x
> n iter variable value
> 1 10 2 Step1 0.001779780
> 2 20 4 Step1 0.000955757
> 3 64 10 Step1 0.001613035
> 4 64 20 Step1 0.000000000
> 5 64 30 Step1 0.000000000
> 6 64 40 Step1 0.000000000
> 7 64 50 Step1 0.000000000
> 8 64 53 Step1 0.000000000
> 9 9999 10 Step1 0.002975209
> 10 9999 20 Step1 0.000000000
> 11 9999 30 Step1 0.000000000
> 12 9999 40 Step1 0.000000000
> 13 9999 50 Step1 0.000000000
> 14 9999 60 Step1 0.000000000
> 15 9999 70 Step1 0.000000000
> 16 9999 80 Step1 0.000000000
> 17 9999 81 Step1 0.000000000
> 18 10 2 Step2 0.000072146
> 19 20 4 Step2 0.000230161
> 20 64 10 Step2 0.003956920
> 21 64 20 Step2 0.004390998
> 22 64 30 Step2 0.004326610
> 23 64 40 Step2 0.004329726
> 24 64 50 Step2 0.004327526
> 25 64 53 Step2 0.001327239
> 26 9999 10 Step2 0.018730820
> 27 9999 20 Step2 0.020846370
> 28 9999 30 Step2 0.020831700
> 29 9999 40 Step2 0.020882840
> 30 9999 50 Step2 0.020459540
> 31 9999 60 Step2 0.020825860
> 32 9999 70 Step2 0.020832040
> 33 9999 80 Step2 0.020335710
> 34 9999 81 Step2 0.002100072
>
>
> On Mon, Aug 27, 2012 at 6:24 AM, Giovanni Azua <[email protected]> wrote:
> Hello,
>
> What would be the best set of R functions to parse and transform a file?
>
> My file looks as shown below. I would like to plot this data and I need to
> parse it into a single data frame that sorts of "transposes the data" with
> the following structure:
>
> > df <- data.frame(n=c(1,1,2,2),iter=c(1,2,1,2),step=as.factor(c('Step 1',
> > 'Step2', 'Step 1', 'Step 2')),value=c(10, 10, 10, 10))
> > str(df)
> 'data.frame': 4 obs. of 4 variables:
> $ n : num 1 1 2 2
> $ iter : num 1 2 1 2
> $ step : Factor w/ 3 levels "Step 1","Step 2",..: 1 3 1 2
> $ value: num 10 10 10 10
>
> n=extracted from the file name "logdet_two_moons_n>>>>10<<<<.txt"
> iter=iter
> step=column Step1, Step2, Step3, Step4
> value=value of the specific Step column
>
> And this is one possible data frame variation to be able to plot the time
> proportions for the different steps of my algorithm.
>
> TIA,
> Best regards,
> Giovanni
>
> Iteration Jmin Error Elapsed Corral Duality Gap Step1 Step2
> Step3 Step4
> 2 2 0.000000e+00 1.912976e-03 1 0.000000e+00
> 1.779780e-03 7.214600e-05 1.243600e-05 2.246700e-05
> ../test/genmoons_data/logdet_two_moons_n10.txt,2,2,1.754115e-02,0.000000e+00,9.799000e+03,0.000000e+00,5.586293e-01,0.000000e+00
> Iteration Jmin Error Elapsed Corral Duality Gap Step1 Step2
> Step3 Step4
> 4 9 0.000000e+00 1.280841e-03 2 -7.105427e-15
> 9.557570e-04 2.301610e-04 1.571100e-05 2.177300e-05
> ../test/genmoons_data/logdet_two_moons_n20.txt,4,5,6.062756e-03,0.000000e+00,1.365970e+05,0.000000e+00,2.253051e+01,0.000000e+00
> Iteration Jmin Error Elapsed Corral Duality Gap Step1 Step2
> Step3 Step4
> 10 32 3.133476e-03 6.075853e-03 8 4.057531e-01
> 1.613035e-03 3.956920e-03 3.077200e-05 4.390900e-05
> 20 28 5.597685e-04 4.376530e-03 16 4.711146e-03
> 0.000000e+00 4.390998e-03 2.229600e-05 2.517100e-05
> 30 27 1.148159e-04 4.357923e-03 22 8.408166e-06
> 0.000000e+00 4.326610e-03 2.697700e-05 3.233200e-05
> 40 27 4.036778e-05 4.388260e-03 29 2.529294e-07
> 0.000000e+00 4.329726e-03 2.713000e-05 3.558400e-05
> 50 27 1.840383e-05 4.357373e-03 36 1.341111e-07
> 0.000000e+00 4.327526e-03 3.097000e-05 3.255700e-05
> 53 27 0.000000e+00 1.322382e-03 36 -2.842171e-14
> 0.000000e+00 1.327239e-03 1.420400e-05 2.043500e-05
> ../test/genmoons_data/logdet_two_moons_n64.txt,53,69,3.330987e-02,0.000000e+00,2.229830e+07,0.000000e+00,6.694201e+02,0.000000e+00
> Iteration Jmin Error Elapsed Corral Duality Gap Step1 Step2
> Step3 Step4
> 10 70 7.739525e-03 2.389529e-02 8 1.494829e+00
> 2.975209e-03 1.873082e-02 4.713600e-05 5.837200e-05
> 20 74 3.379192e-03 2.084753e-02 15 3.372041e-01
> 0.000000e+00 2.084637e-02 4.302400e-05 3.907800e-05
> 30 76 1.322821e-03 2.093204e-02 21 1.018845e-01
> 0.000000e+00 2.083170e-02 4.704100e-05 5.707100e-05
> 40 78 1.176950e-03 2.095179e-02 28 2.447970e-02
> 0.000000e+00 2.088284e-02 4.890700e-05 4.955100e-05
> 50 78 2.233669e-04 2.050571e-02 35 1.573952e-02
> 0.000000e+00 2.045954e-02 4.046600e-05 3.899000e-05
> 60 78 2.167956e-04 2.095130e-02 39 8.362982e-03
> 0.000000e+00 2.082586e-02 6.699700e-05 8.506400e-05
> 70 78 2.085968e-04 2.085355e-02 46 5.135190e-03
> 0.000000e+00 2.083204e-02 5.432900e-05 4.078600e-05
> 80 78 2.570800e-04 2.044932e-02 51 5.470225e-04
> 0.000000e+00 2.033571e-02 5.334200e-05 5.318400e-05
> 81 78 0.000000e+00 2.099610e-03 51 1.421085e-14
> 0.000000e+00 2.100072e-03 9.147000e-06 2.324800e-05
> [[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.
>
>
>
> --
> Jim Holtman
> Data Munger Guru
>
> What is the problem that you are trying to solve?
> Tell me what you want to do, not how you want to do it.
[[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.