Bert Gunter
2019-Aug-23 21:08 UTC
[R] Fwd: Code that works when run as straight code, but that fails when run as a function
Sorry -- neglected to cc the list. Bert ---------- Forwarded message --------- From: Bert Gunter <bgunter.4567 at gmail.com> Date: Fri, Aug 23, 2019 at 2:06 PM Subject: Re: [R] Code that works when run as straight code, but that fails when run as a function To: Sorkin, John <jsorkin at som.umaryland.edu> s1E is not defined in your function in: SBP <- c(s1E,s2E) R will then look for it in the caller (the Global environment presumably), but maybe it isn't there. Presumably it was when you ran the code interactively. 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, Aug 23, 2019 at 12:46 PM Sorkin, John <jsorkin at som.umaryland.edu> wrote:> I have code that works perfectly when run as in-line code, but that fails > when the code is put into a function with the following message: > Error in contest1D.lmerModLmerTest(model, ll, rhs = rhs, ddf = ddf, > confint = confint, : > length(L) == length(model at beta) is not TRUE > > Why does moving the code to a function lead to an error? What can I do to > avoid the error? > Thank you, > John > > In-line code: > fit2aCort <- > lmer(SBP~age+jFStage+AHIgt5+jFStage*AHIgt5+(1|patid),data=alldata) > > c1 <-c(1, 5.99, 1, 0, 0, 1, 0 ) > c2 <-c(1, 5.99, 0, 1, 0, 0, 1 ) > > model <- fit2aCort > s1a <- contest(model,L=c1,joint=FALSE) > s1as1E <- s1a$Estimate > > s2a <- contest(model,L=c2,joint=FALSE) > s2E <- s2a$Estimate > > Time <- c(1,2) > SBP <- c(s1E,s2E) > plot(Time,SBP) > title("Predicted Sys SBP, age 5.99 yr (SS 524 obs with BP 190mmHg > removed)") > plotCI(Time,SBP,uiw=1.96*c(s1a$"Std. Error",s2a$"Std. Error")) > > > Code put into a function that fails: > plotit <- function(c1,c2,model) > { > s1a <- contest(model,L=c1,joint=FALSE) > s1as1E <- s1a$Estimate > > s2a <- contest(model,L=c2,joint=FALSE) > s2E <- s2a$Estimate > > Time <- c(1,2) > SBP <- c(s1E,s2E) > plot(Time,SBP) > title("Predicted Sys SBP, age 5.99 yr (SS 524 obs with BP 190mmHg > removed)") > plotCI(Time,SBP,uiw=1.96*c(s1a$"Std. Error",s2a$"Std. Error")) > } > > fit2aCort <- > lmer(SBP~age+jFStage+AHIgt5+jFStage*AHIgt5+(1|patid),data=alldata) > > c1 <-c(1, 5.99, 1, 0, 0, 1, 0 ) > c2 <-c(1, 5.99, 0, 1, 0, 0, 1 ) > plotit(c1,c2,fit2aCort) > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. >[[alternative HTML version deleted]]