[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