[R] Fwd: Code that works when run as straight code, but that fails when run as a function

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Fri Aug 23 23:08:50 CEST 2019


Sorry -- neglected to cc the list.
Bert

---------- Forwarded message ---------
From: Bert Gunter <bgunter.4567 using 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 using 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 using 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 using 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 using 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]]



More information about the R-help mailing list