1
0
Fork 0
mirror of https://github.com/prise6/aVirtualTwins.git synced 2024-05-12 21:16:32 +02:00
aVirtualTwins/R/tools.R
2015-05-31 21:09:04 +02:00

43 lines
1.4 KiB
R

vt.getQAOriginal <- function(response, trt, ahat){
if(is.factor(response)) response = as.numeric(response) - 1
if(sum(ahat) == 0){
tmp <- 0
}else{
tmp <- sum(response*ahat*trt)/sum(ahat*trt) -
sum(response*ahat*(1-trt))/sum(ahat*(1-trt)) -
(sum(response*trt)/sum(trt) -
sum(response*(1-trt))/sum(1-trt))
}
return(tmp)
}
vt.getTable <- function(table){
if(is.list(table)) table <- table[[1]]
Incidence <- function(X) as.character(round(X[2] / X[3], digits = 3))
t <- addmargins(table, margin = c(1,2), FUN = sum, quiet = T)
t <- addmargins(t, FUN = Incidence, margin = 1, quiet = T)
rr <- as.numeric(t["Incidence", "1"]) / as.numeric(t["Incidence", "0"])
return(list(table = t, rr = rr))
}
vt.getIncidence <- function(df){
if (nrow(df) == 0) table.res <- NULL
else{
table.res <- vt.getTable(table(df[, 1],
df[, 2],
deparse.level = 2,
dnn = c("resp", "trt")))
}
return(table.res)
}
vt.rr.snd <- function(vt.difft, selected){
if(sum(selected) == 0){
return(0)
}else{
return((sum(vt.difft$twin1*selected*vt.difft$vt.object$data[, 2])/sum(selected*vt.difft$vt.object$data[, 2]))
/(sum(vt.difft$twin1*selected*(1-vt.difft$vt.object$data[, 2]))/sum(selected*(1-vt.difft$vt.object$data[, 2]))))
}
}