Predict
Seems like you need to start by learning R. Lots of good online tutorials exist -- have you spent time with any? And possibly also spend some time with a basic statistics text or a statistical expert to clarify your goals and methodology. Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
On Fri, Jun 30, 2017 at 8:23 AM, Ahmed Attia <ahmedatia80 at gmail.com> wrote:
Sorry for the confusion, here is the edited question.
The data= Stand_Height (attached) is recorded from 12/1/2009 to
12/31/2015 (25 observations) and the other dataset (leafbiom) is
recorded from 10/7/2009 to 12/29/2016 (daily observations).
I want to use the 25 observations of stand height to predict the daily
stand height from 10/7/2009 to 12/29/2016. The daily stand height will
be multiplied by leaf biomass to produce a new variable.
I agree that a loop is not needed, would the forecast library help or
should I use predict library.
Stand_Height=ts(Stand_Height$height,start=2009,end = 2016,
frequency =365)
plot(forecast(ets(Stand_Height),10))
a=seq(as.Date("2009-12-01"),by="weeks",length=11)
axis(1, at = a, labels = format(a, "%Y %b %d"), cex.axis=0.6)
#Error :$ operator is invalid for atomic vectors
Thanks
Ahmed Attia, Ph.D.
Agronomist & Soil Scientist
On Fri, Jun 30, 2017 at 10:37 AM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
There are a bunch of things wrong here, although without a reproducible example I can't really fix most of them. - You're overwriting SH within the loop. - You're running the regression 2641 times, even though the result never changes. - You're never predicting from your linear model using the other data not in the regression. - Leaf biomass data is never used for anything. I would have thought that you would use leaf biomass as the predictor variable, not Date. - I'm not sure why you want the cumulative sum of stand height; that doesn't make sense to me. I'm guessing you want: height.model <- lm(height ~ leafbiomass, data = Stand_Height) pred.height <- predict(height.model, leafbiom) # not sure about the reasoning behind this SH <- cumsum(pred.height) You don't need a loop. Overwriting SH is the biggest R problem; the rest of my questions have to do with what your objective actually is, like what you are modeling and what you are doing with the predictions. But my sample code might be enough to get you headed in the right direction regardless. Sarah On Fri, Jun 30, 2017 at 9:27 AM, Ahmed Attia <ahmedatia80 at gmail.com> wrote:
Hi folks,
I have 25 stand height observations over 7 years period and daily
leafbiomass data during this period. I want to use the 25 plant height
observations as inputs and predict the daily stand height during the 7
years.
SH=matrix(data=NA , nrow = 2641, ncol = 1)
for (i in 1:2641) {
SH<- predict(lm(height~Date, data=Stand_Height));
dl=leafbiom$Date[i-1];
de=leafbiom$Date[i];
SH[i]=sum(SH[leafbiom$Date==de&leafbiom$Date==dl])
}
SH
The SH output is the prediction of Stand height in 25 observations
only and provides NA for the remaining 2616 iterations.
Thanks for your help.
Ahmed Attia, Ph.D.
Agronomist & Soil Scientist
-- Sarah Goslee http://www.functionaldiversity.org
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.