[R-SIG-Finance] removing repeating values from xts series

Ulrich Staudinger ustaudinger at gmail.com
Wed Sep 15 08:28:08 CEST 2010


Hi fellows,

I am facing a case that I cannot solve with my limited knowledge of R,
unless I write the function myself - which I would like to avoid
(reusing is better than reinventing the wheel). Following the relevant
information.

Input scenario:
An xts time series object with duplicates, the object contains bid,
bid volume, ask, ask volume.
Example:
01-01-2010 09:00:01	100	1	101	1
01-01-2010 09:00:02	100	1	101	1
01-01-2010 09:00:03	100	1	101	1
01-01-2010 09:00:04	101	1	102	1
01-01-2010 09:00:05	102	1	102	1
01-01-2010 09:00:06	100	1	101	1
...

Goal:
A timeseries with only non-repeating values, removing the duplicates
in between the values.

I tried "unique" already, but that one returns only the unique values
from within the whole timeseries and not on a running base.


Example code:
The following example code exemplifies with a non-xts series what I
want to achieve ...
> y = c(1,1,2,2,1,1,1,2,3,4,3,3,3,3,3,1)
> removeDuplicates <- function(input)
{
	index = 2
	ret = c(input[1])
	for(i in 2:length(input))
	{
		if(input[i]!=input[i-1])
		{
			ret[index] = input[i]
			index = index + 1
		}
	}
	ret
}
>
> removeDuplicates(y)
[1] 1 2 1 2 3 4 3 1
>



How can I make this with an xts series? Is there a function for this?

Thanks in advance,
with kind regards,
Ulrich

-- 
Ulrich Staudinger
activequant.org



More information about the R-SIG-Finance mailing list