### test-univariateTable.R ---
#----------------------------------------------------------------------
## author: Thomas Alexander Gerds
## created: May 9 2015 (07:55)
## Version:
## last-updated: Apr 3 2022 (11:57)
## By: Thomas Alexander Gerds
## Update #: 10
#----------------------------------------------------------------------
##
### Commentary:
##
### Change Log:
#----------------------------------------------------------------------
##
### Code:
library(testthat)
library(prodlim)
library(Publish)
data(Diabetes)
test_that("univariateTable no groups",{
u1 <- univariateTable(~age +gender + height + weight,data=Diabetes)
a <- summary(u1,show.missing=1L)
expect_equal(NROW(a),9)
b <- summary(u1,show.missing=0L)
expect_equal(NROW(b),5)
u2 <- univariateTable(~age,data=Diabetes)
u3 <- univariateTable(~gender,data=Diabetes)
a1 <- publish(univariateTable(~age+gender+ height+weight,data=Diabetes))
a2 <- publish(summary(univariateTable(~age+gender+ height+weight,data=Diabetes)))
expect_equal(a1,a2)
})
test_that("Univariate table with groups and missing values and labels with special characters",{
Diabetes$AgeGroups <- cut(Diabetes$age,
c(19,29,39,49,59,69,92),
include.lowest=TRUE)
univariateTable(location~age+gender+height+weight+AgeGroups,data=Diabetes)
publish(summary(univariateTable(location~age+gender+height+weight,
data=Diabetes)),org=TRUE)
v <- univariateTable(gender ~age+height,data=Diabetes)
sv <- summary(v,show.missing="always")
univariateTable(location~factor(AgeGroups)+gender+height+weight,
data=Diabetes,
summary.format="median(x) {iqr(x)}")
levels(Diabetes$frame) <- c("+large","medi()um=.<",">8")
expect_output(publish(summary(univariateTable(frame~age+gender+height+weight+location,
data=Diabetes)),org=TRUE))
expect_output(publish(summary(univariateTable(location~age+gender+height+weight+frame,
data=Diabetes)),org=TRUE))
})
test_that("Univariate table with row percent",{
a <- summary(univariateTable(frame~gender+location, data=Diabetes,column.percent=TRUE))
b <- summary(univariateTable(frame~gender+location, data=Diabetes,column.percent=FALSE))
expect_equal(as.numeric(colSums(a[a$Variable=="gender"]==b[b$Variable=="gender"])),c(4,0))
})
if (FALSE){
test_that("Univariate table with stupid function",{
stupid <- function(x){
if (mean(x)>47) "large" else "small"
}
univariateTable(location~age+height+weight,
data=Diabetes,
summary.format="Mean: mean(x) stupid's distance: (stupid(x))")
publish(summary(univariateTable(location~age+height+weight,
data=Diabetes,
summary.format="Mean: mean(x) stupid's distance: (stupid(x))")),
org=TRUE)
MeanSe <- function(x){
paste("Mean=",round(mean(x),1)," Standard.error=",round(sd(x)/sqrt(length(x)),3),sep="")
}
expect_output(publish(univariateTable(location~age+height+weight,data=Diabetes,summary.format="MeanSe(x)")))
ux <- univariateTable(location~gender+age+AgeGroups,
data=Diabetes,
column.percent=FALSE,
freq.format="count(x)")
sux <- summary(ux)
publish(sux,org=TRUE)
})
}
#----------------------------------------------------------------------
### test-univariateTable.R ends here
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.