[R] loess line predicting number where the line crosses zero twice
Peter Alspach
Peter.Alspach at plantandfood.co.nz
Fri Jul 16 04:25:56 CEST 2010
Tena koe Stephen
You'll need to use loess(w[,"bkf_depths"]~w[,"measure"])) and predict with a sufficiently dense sequence of w[,'measure'] to interpolate to an 'accuracy' that meets your requirements. Actually, if I understand your data correctly, it could be that simple linear interpolation (i.e., without loess) would be sufficient (even better).
HTH ....
Peter Alspach
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of stephen sefick
> Sent: Friday, 16 July 2010 11:33 a.m.
> To: r-help at r-project.org
> Subject: [R] loess line predicting number where the line crosses zero
> twice
>
> These data represent stream channel cross-sectional surveys. I would
> like to be able to find the measurement on the tape (measure) where
> the Bank Full Depth (bkf_depths) is 0. This will happen twice because
> the channel has two sides. I thought fitting a loess line to these
> data and then predicting the measurment number would do it. I was
> wrong. Below is my failed attempt. My naive thought is this - I
> would like to run my finger along this line and when it hits zero I
> would like to pick out the value of measure. This should happen twice.
> Any help would be greatly appreciated!
>
> w <- (structure(list(measure = c(0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1.2,
> 1.4, 1.6, 1.8, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.2, 3.4, 3.6, 3.8,
> 4, 4.2, 4.4, 4.6, 4.8, 4.8, 4.84, 5, 5.2, 5.4, 5.6, 5.68), bkf_depths =
> c(0,
> 0.44, 0.46, 0.66, 0.9, 1.1, 1.1, 1.2, 1.3, 1.33, 1.36, 1.36,
> 1.36, 1.38, 1.38, 1.36, 1.36, 1.38, 1.37, 1.37, 1.34, 1.32, 1.36,
> 1.35, 1.36, 1.4, 1.4, 1.3, 0.7, 0.57, 0.21, -0.05, -0.12)), .Names =
> c("measure",
> "bkf_depths"), row.names = c(32L, 1L, 2L, 3L, 4L, 5L, 29L, 6L,
> 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L,
> 20L, 21L, 22L, 23L, 31L, 24L, 30L, 25L, 26L, 27L, 28L, 33L), class =
> "data.frame")
> )
>
> plot(w[,"bkf_depths"]~w[,"measure"])
> lines(loess(w[,"bkf_depths"]~w[,"measure"]))
>
> #this is what I tried and there should be two 0s one at the left side
> of the graph and one at the right side
> predict(loess(w[,"measure"]~w[,"bkf_depths"]), 0)
>
>
> kindest regards,
>
>
> --
> Stephen Sefick
> ____________________________________
> | Auburn University |
> | Department of Biological Sciences |
> | 331 Funchess Hall |
> | Auburn, Alabama |
> | 36849 |
> |___________________________________|
> | sas0025 at auburn.edu |
> | http://www.auburn.edu/~sas0025 |
> |___________________________________|
>
> Let's not spend our time and resources thinking about things that are
> so little or so large that all they really do for us is puff us up and
> make us feel like gods. We are mammals, and have not exhausted the
> annoying little problems of being mammals.
>
> -K. Mullis
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list