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

2019-08-23 Thread Rui Barradas

Hello,

Inline.

Às 20:45 de 23/08/19, Sorkin, John escreveu:

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@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


Is s1as1E a typo? The way you define and use s2E suggests that it should be

s1E <- s1a$Estimate


Hope this helps,

Rui Barradas



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@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.



__
R-help@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.


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

2019-08-23 Thread Sarah Goslee
Since this isn't reproducible, my first guess would be that alldata,
which is required for your model, is not visible within the
environment of the function.

Or something similar: that kind of problem is almost always a scoping issue.

Sarah

On Fri, Aug 23, 2019 at 3:46 PM Sorkin, John  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@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@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.



-- 
Sarah Goslee (she/her)
http://www.numberwright.com

__
R-help@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.


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

2019-08-23 Thread Sorkin, John
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@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@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.