Homecooked solution? [🇷 for BE/BA]
Hi all,
since no standard function exists which helps me along, I wrote the stuff below.
The structure of the input file is like in the appendices for Schütz, Labes, Fuglsang's paper in the AAPS Journal.
I am sure the code police will tell me this isn't efficient
because the same could be achieved with fewer code lines or some
The purpose is to allow some CI info where we don't ask for "T/R" but perhaps for "R/T" or for "B/D" or "Foo/Bar", whatever.
since no standard function exists which helps me along, I wrote the stuff below.
The structure of the input file is like in the appendices for Schütz, Labes, Fuglsang's paper in the AAPS Journal.
I am sure the code police will tell me this isn't efficient

apply
family calls. I am sure that is correct. Does the code achieve its goal properly, though? That is a much more interesting question. Not at all throughly tested and certainly not validated.The purpose is to allow some CI info where we don't ask for "T/R" but perhaps for "R/T" or for "B/D" or "Foo/Bar", whatever.
Extract.Hot.Info=function(TreatmentRatio, Z)
{
i=regexpr("/", TreatmentRatio)
T1=substring(TreatmentRatio, 1, i-1)
T2=substring(TreatmentRatio, i+1, nchar(TreatmentRatio)) ##heck!
for (i in 1:nrow(Z))
{
if (as.character(Z[i,1]) == T1) E1=as.numeric(Z[i,2])
if (as.character(Z[i,1]) == T2) E2=as.numeric(Z[i,2])
}
return(E1-E2)
}
Get.CI.BE=function(FName, alpha, TreatmentRatio, Stage.Term=F)
{
A=read.table(FName, header=T) ##Note Var is untransformed
if (Stage.Term)
M=lm(log(Var)~factor(Trt)+factor(Seq)+factor(Per)+factor(Subj)+factor(Stg), data=A)
else
M=lm(log(Var)~factor(Trt)+factor(Seq)+factor(Per)+factor(Subj), data=A)
df=M$df.residual
Sc=summary(M)$coefficients
Trt.Lvls=levels(A$Trt)
Eff.Lvls=rep(0, length(Trt.Lvls)) ##pseudo effect levels. Usefyl for for extr. of differences
for (i in 1:nrow(Sc))
for (j in 1:length(Trt.Lvls))
{
x=paste("factor(Trt)", as.character(Trt.Lvls[j]), sep="")
if (rownames(Sc)[i]==x) { Eff.Lvls[j]=Sc[i,1]; SEdiffs=Sc[i,2]}
}
Z=data.frame(Trt.Lvls, Eff.Lvls)
Diff.LogScale=Extract.Hot.Info(TreatmentRatio,Z)
logL=Diff.LogScale-SEdiffs*qt(p=1-alpha, df=df)
logU=Diff.LogScale+SEdiffs*qt(p=1-alpha, df=df)
L=list(PE=exp(Diff.LogScale), Lower=exp(logL), Upper=exp(logU))
return(L)
}
## call it like Get.CI.BE("Cojones.txt", 0.05, "T/R", F)
—
Pass or fail!
ElMaestro
Pass or fail!
ElMaestro
Complete thread:
- confint() for difference of effect levels ElMaestro 2017-08-29 10:20 [🇷 for BE/BA]
- confint() for difference of effect levels d_labes 2017-08-29 12:23
- confint() for difference of effect levels ElMaestro 2017-08-29 14:45
- Homecooked solution?ElMaestro 2017-08-29 23:18
- Restaurant solution mittyri 2017-08-30 08:11
- Great ElMaestro 2017-08-30 09:27
- Restaurant solution mittyri 2017-08-30 08:11
- All-at-once or Two-at-a-time d_labes 2017-08-30 19:55
- Homecooked solution?ElMaestro 2017-08-29 23:18
- confint() for difference of effect levels ElMaestro 2017-08-29 14:45
- confint() for difference of effect levels d_labes 2017-08-29 12:23