Hi, Given some example data:
dat <- seq(4, 7, by = 0.05) x <- sample(dat, 30) y <- sample(dat, 30) error <- x - y I have broken the rage of x into 10 groups and I can calculate the bias (mean(error)) for each of these 10 groups: groups <- cut(x, breaks = 10) max.bias <- aggregate(error, list(group = groups), mean) max.bias group x 1 (4,4.3] -0.7750000 2 (4.3,4.6] -0.9750000 3 (4.6,4.9] -0.6750000 4 (4.9,5.2] -0.9125000 5 (5.2,5.5] 1.0500000 6 (5.5,5.8] 0.3166667 7 (5.8,6.1] 0.1375000 8 (6.1,6.4] 1.1833333 9 (6.4,6.7] 0.2500000 10 (6.7,7] 1.7000000 Which is fine. Now I am producing a plot of the residuals vs observed and I want to draw line segments from e.g. (4,4.3] at height = -0.7750000, but for all 10 groups, like so: plot(x, error, type = "n") abline(h = 0, col = "grey") panel.smooth(x, error) arrows(4, -0.775, 4.3, -0.775, length = 0.05, angle = 90, code = 3) The problem is getting the range/interval for each group from (4,4.3], so I can automate this. Anyone think of a way to do this - happy to change the way the groups are generated if cut() is not the right tool for the job here. Many thanks, Gav -- %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% *Note new Address and Fax and Telephone numbers from 10th April 2006* %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% Gavin Simpson [t] +44 (0)20 7679 0522 ECRC [f] +44 (0)20 7679 0565 UCL Department of Geography Pearson Building [e] gavin.simpsonATNOSPAMucl.ac.uk Gower Street London, UK [w] http://www.ucl.ac.uk/~ucfagls/cv/ WC1E 6BT [w] http://www.ucl.ac.uk/~ucfagls/ %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html