[R] parsing numbers from a string

Jonne Zutt j.zutt at ewi.tudelft.nl
Sun Feb 8 21:39:13 CET 2004


Dear R-help members,

I have several large data sets from certain simulations I did and now I want to plot the results nicely.
I don't know anything about the size of the x and y values in advance.
Plotting these values is not a problem.
However, I want to add errorbars (errbar in the Hmisc package).

1) For this I'm factoring the data (xdata00 varies from 0 to max(xdata00))
	xfactor00 = factor(cut(xdata00, breaks = (max(xdata00)/10)*(0:100)))

2) I compute the means of the different levels
	ymeans00 = tapply(ydata00, xfactor00, mean)

3) I compute the errors of the different levels
	ystdevs00 = tapply(ydata00, xfactor00, sd)

4) And then I use the errbar function
	errbar((xlim/20)+(xlim/10)*(0:(length(ymeans00)-1)), ymeans00, ymeans00+ystdevs00, ymeans00-ystdevs00, add=T)

My problem is that the x-values that I provide to the errbar are not
correct if there are empty parts in my initial data.

To give an example of this:
> ymeans00
  (0,74.4] (74.4,149]  (149,223]  (223,298]  (298,372]  (372,447]  (670,744]
  20.74706  195.90000  275.62500  316.00000  329.75000  373.00000  478.75000

Here we see the 6th and 7th intervals are not neighbors, in fact there are three missing.
The errbar function now plots the last error bar at a too small x value.

A possible solution for me would be to compute the correct x value from the following output
> names(ymeans00)
[1] "(0,74.4]"   "(74.4,149]" "(149,223]"  "(223,298]"  "(298,372]"
[6] "(372,447]"  "(670,744]"

I want a vector containing [0+74.4/2, 74.4+149/2, ...etc]

But I don't know how to parse these strings.
Does anyone know how to do this, or maybe is there a simpler way?

Thanks in advance,
Jonne.




More information about the R-help mailing list