# [R] [Q] Newbie (continued.. at least I got R running allready :-)

Richard A. O'Keefe ok at cs.otago.ac.nz
Tue Jun 22 06:42:26 CEST 2004

```"jeroen clarysse" <jeroen.clarysse at easynet.be> wrote:
I'll restate the problem : i got a datafile with 2400 measuerements (every
250msec) of a CO2 measurement device, capturing the breath of a subject. I
uploaded such a sample here :

http://www.psy.kuleuven.ac.be/leerpsy/data.csv

I stuffed that through an AWK script to convert
hh:mm:ss:msc
to seconds and omit the INDEX field.  Plotting the
points, I noticed well-defined peaks, but they were flat-topped.

This table has \$t and \$co2 columns.

> y <- rle(x\$co2)
> n <- 2:(length(y\$values)-1)
> b <- n[(y\$values[n-1] < y\$values[n]) & (y\$values[n] > y\$values[n+1])]
> i <- cumsum(y\$lengths)[b]
> j <- i + 1 - y\$lengths[b]
> plot(x, col="green")         # points in green
> points(x[j,], col="red")     # first point of each peak in red
> points(x[i,], col="black")   # last point of each peak in black

> g <- diff((x\$t[i]+x\$t[j])/2)

This step first finds the mid-points of the peaks, and then
finds the differences between them.

> g
[1] 4.6125 3.3750 4.3875 3.4500 3.8625 3.6500 4.2750 3.9000 3.6750 4.8750
[11] 2.8375 2.9375 2.6875 2.3375 2.7375 2.4250

There is quite a dramatic difference between the first ten inter-peak
times and the last five.

```