[R] Using which function with xts

Manussawee Sukunta msukunta at illinoisalumni.org
Wed Jul 14 16:55:02 CEST 2010


Hi everyone:

I did a search over the internet and still couldn't find answer to my problem.

I have a series of prices that I'm trying to clean up by removing any
prices greater than 3 times the standard deviations.  So, say that
prices are:

                        price1
2010-06-18 08:00:06.916   2730
2010-06-18 08:00:07.005   2730
2010-06-18 08:00:07.005   2729
2010-06-18 08:00:07.451   2730
2010-06-18 08:00:07.451   2730
2010-06-18 08:00:07.805   2730
2010-06-18 08:00:08.010   2730
2010-06-18 08:00:08.354   2730
2010-06-18 08:00:08.354   2729
2010-06-18 08:00:08.354   2729
2010-06-18 08:00:08.354   2730
2010-06-18 08:00:08.635   2730
2010-06-18 08:00:08.635   2730
2010-06-18 08:00:08.805   2730
2010-06-18 08:00:09.020   2731
2010-06-18 08:00:09.020   2731
2010-06-18 08:00:09.020   2731
2010-06-18 08:00:09.020   2731

I then find:
avg = mean(price, na.rm=T)
std = sd(price, na.rm=T)
t = abs(price-avg)
tt = which(t > 2.9*std)

I still was able to maintain class(t) = "xts" "zoo", but class(tt) =
"integer".  I need to keep tt to xts because anything that's more than
2.9*std will be filter out using the time stamp as the index.  If I
don't have the time stamp in tt, I'm not quite sure how I can filter
out unwanted prices.

I know that this code works on Linux side, but I have to translate it
to Windows side.  The data is fed in a little differently, but it
should works the same way now that I've translated the data into xts
object.  I'm not quite sure what I'm missing.  Any help is greatly
appreciated.

Thank you,
Manussawee



More information about the R-help mailing list