Below I have written out some simplified data from my dataset. My goal is to interpolate Price based on timestamp. Therefore the closer a Price is in time to another price, the more like that price it will be. I want the interpolations for each St and not across St (St is a factor with levels A, B, and C). Unfortunately, I get error messages from code I wrote.
In the end only IDs 10 and 14 will receive interpolated values because all other NAs occur at the beginning of a level. My code is given below the dataset. ID is int St is factor with 3 levels timestamp is POSIXlt Price is num Data.frame name is portfolio ID St timestamp Price 1 A 2012-01-01 12:50:24.760 NA 2 A 2012-01-01 12:51:25.860 72.09 3 A 2012-01-01 12:52:21.613 72.09 4 A 2012-01-01 12:52:42.010 75.30 5 A 2012-01-01 12:52:42.113 75.30 6 B 2012-01-01 12:56:20.893 NA 7 B 2012-01-01 12:56:46.023 67.70 8 B 2012-01-01 12:57:19.300 76.06 9 B 2012-01-01 12:58:20.750 77.85 10 B 2012-01-01 12:58:20.797 NA 11 B 2012-01-01 12:59:19.527 79.57 12 C 2012-01-01 13:00:21.847 81.53 13 C 2012-01-01 13:00:21.860 81.53 14 C 2012-01-01 13:00:21.873 NA 15 C 2012-01-01 13:00:43.493 84.69 16 D 2012-01-01 12:01:21.520 24.63 17 D 2012-01-01 12:02:18.880 21.13 I tried the following using na.approx from zoo package interpolatedPrice<-unlist(tapply(portfolio$Price, portfolio$St, na.approx, portfolio$timestamp, na.rm=FALSE)) but keep getting error "Error in na.approx.default(X[[1L]], ...) : x and index must have the same length" I checked the length of every variable in the formula and they all have the same length so I am not sure why I get the error message. Jay [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.