mirror of
https://github.com/agdamsbo/daDoctoR.git
synced 2024-11-22 11:50:23 +01:00
68 lines
1.8 KiB
R
68 lines
1.8 KiB
R
#' Print regression results according to STROBE
|
|
#'
|
|
#' Printable table of linear regression analysis of group vs var for meas.
|
|
#' @param meas outcome meassure variable name in data-data.frame as a string.
|
|
#' @param var exposure variable to compare against (active vs placebo). As string.
|
|
#' @param groups groups to compare, as string.
|
|
#' @param adj variables to adjust for, as string.
|
|
#' @param data dataframe of data.
|
|
#' @param dec decimals for results, standard is set to 2. Mean and sd is dec-1.
|
|
#' @keywords cpr
|
|
#' @export
|
|
#' @examples
|
|
#' strobe_print()
|
|
|
|
strobe_print<-function(meas,var,group,adj,data,dec=2){
|
|
## meas: sdmt
|
|
## var: rtreat
|
|
## group: genotype
|
|
## for dichotome exposure variable (var)
|
|
|
|
d<-data
|
|
m<-d[,c(meas)]
|
|
v<-d[,c(var)]
|
|
g<-d[,c(group)]
|
|
|
|
ads<-d[,c(adj)]
|
|
|
|
dat<-data.frame(m,v,g,ads)
|
|
|
|
df<-data.frame(matrix(ncol=7))
|
|
names(df)<-c("grp",paste0("N.",substr(levels(v)[1],1,3)),paste0("M.",substr(levels(v)[1],1,3)),paste0("N.",substr(levels(v)[2],1,3)),paste0("M.",substr(levels(v)[2],1,3)),"diff","ad.diff")
|
|
|
|
for (i in 1:length(levels(g))){
|
|
grp<-levels(dat$g)[i]
|
|
di<-dat[dat$g==grp,][,-3]
|
|
|
|
mod<-lm(m~v,data=di)
|
|
co<-round(coef(mod)[-1],dec)
|
|
lo<-round(confint(mod)[-1,1],dec)
|
|
up<-round(confint(mod)[-1,2],dec)
|
|
|
|
ci<-paste0(co," (",lo," to ",up,")")
|
|
|
|
amod<-lm(m~.,data=di)
|
|
aco<-round(coef(amod)[2],dec)
|
|
alo<-round(confint(amod)[2,1],dec)
|
|
aup<-round(confint(amod)[2,2],dec)
|
|
|
|
aci<-paste0(aco," (",alo," to ",aup,")")
|
|
|
|
nr<-c()
|
|
|
|
for (r in 1:2){
|
|
vr<-levels(di$v)[r]
|
|
dr<-di[di$v==vr,]
|
|
n<-as.numeric(nrow(dr[!is.na(dr$m),]))
|
|
mean<-round(mean(dr$m,na.rm = TRUE),dec-1)
|
|
sd<-round(sd(dr$m,na.rm = TRUE),dec-1)
|
|
ms<-paste0(mean," (",sd,")")
|
|
|
|
nr<-c(nr,n,ms)
|
|
}
|
|
irl<-c(grp,nr,ci,aci)
|
|
df<-rbind(df,irl)
|
|
}
|
|
return(df)
|
|
}
|