install.packages('TriMatch')
library(TriMatch)

data(nmes)
nmes <- subset(nmes, select=c(packyears, smoke, LASTAGE, MALE,
RACE3, beltuse, educate, marital, SREGION, POVSTALB, HSQACCWT, TOTALEXP))
nmes <- na.omit(nmes)

nmes$smoke <- factor(nmes$smoke, levels=c(0,1,2),labels=c("Never","Smoker","Former"))
nmes$LogTotalExp <- log(nmes$TOTALEXP + 1)
(medPY <- median(nmes[nmes$smoke != "Never",]$packyears))

table(nmes$smoke, nmes$packyears > medPY)

nmes$smoke2 <- ifelse(nmes$smoke == "Never", "Never",ifelse(nmes$packyears > 17, "Heavy", "Moderate"))
table(nmes$smoke, nmes$smoke2, useNA="ifany")

nmes$LastAge5 <- cut(nmes$LASTAGE,
breaks=quantile(nmes$LASTAGE, probs=seq(0,1,1/5)),
include.lowest=TRUE, orderd_result=TRUE)

formu <- ~ LASTAGE + MALE + RACE3 + beltuse + educate + marital + SREGION + POVSTALB

tpsa.smoke <- trips(nmes, nmes$smoke, formu)
tpsa.packyears <- trips(nmes, nmes$smoke2, formu)
tmatch.smoke <- trimatch(tpsa.smoke,exact=nmes[,c("LastAge5","MALE","RACE3")])
tmatch.packyears <- trimatch(tpsa.packyears, exact=nmes[,c("LastAge5","MALE","RACE3")])
summary(unmatched(tmatch.smoke))
summary(unmatched(tmatch.packyears))
summary(unmatched(tmatch.packyears))

sum.smoke <- summary(tmatch.smoke, nmes$LogTotalExp,ordering=c("Smoker","Former","Never"))
sum.packyears <- summary(tmatch.packyears, nmes$LogTotalExp,ordering=c("Heavy","Moderate","Never"))
print("Current Smoking Status"=sum.smoke, "Smoking Frequency"=sum.packyears)