Nothing
## Create simple dummy data ----
d1 <- data.frame(f1=factor(c("A","A","A","B","B","B","C","C","C")),
f2=factor(c("a","b","c","a","b","c","a","b","c")),
f3=factor(c("A","A","A","B","B","B","C","C",NA)),
c1=c("A","A","A","B","B","B","C","C","C"),
c2=c("A","A","A","B","B","B","C","C",NA),
q1=0:8,q2=11:19,q3=c(1:3,1:3,1,2,2),q4=c(NA,0:7),
stringsAsFactors=FALSE)
# Result labels
qnms1 <- c("n","nvalid","mean","sd","min","Q1","median","Q3","max","percZero")
## Test Messages ----
test_that("Summarize(), formula method messages",{
expect_error(Summarize(~f1,data=d1),
"only works with a numeric variable")
expect_error(Summarize(~c1,data=d1),
"only works with a numeric variable")
expect_error(Summarize(f1~1,data=d1),
"only works with a numeric variable")
expect_error(Summarize(c1~1,data=d1),
"only works with a numeric variable")
expect_error(Summarize(q1+q2~f1+f2,data=d1),
"more than one variable on the LHS")
expect_error(Summarize(q1~f1+f2+c1,data=d1),
"may contain only one or two factors")
expect_error(Summarize(q1~f1+f2+c1,data=d1),
"may contain only one or two factors")
expect_error(Summarize(~f1+f2,data=d1),
"Must have one variable on LHS of formula")
expect_error(Summarize(~q1+q2,data=d1),
"Must have one variable on LHS of formula")
expect_error(Summarize(f1~f2,data=d1),
"numeric variable on LHS")
expect_error(Summarize(c1~f2,data=d1),
"numeric variable on LHS")
expect_error(Summarize(~q1,data=d1,nvalid="derek"),
"should be one of")
expect_error(Summarize(~q1,data=d1,percZero="derek"),
"should be one of")
})
test_that("Summarize(), default method, messages",{
expect_error(Summarize(d1),
"does not work with a data.frame")
expect_error(Summarize(as.matrix(d1[,c("q1","q2")])),
"does not work with matrices")
expect_error(Summarize(as.matrix(d1[,c("f1","f2","c1")])),
"does not work with matrices")
expect_error(Summarize(d1$q1,nvalid="derek"),
"should be one of")
expect_error(Summarize(d1$q1,percZero="derek"),
"should be one of")
})
## Test Output Types ----
## Validate Results ----
test_that("Summarize() results, single quantitative variable",{
## no NAs or zeros
exp <- c(9,9,15,sd(d1$q2),11,13,15,17,19,0) # all possible results
names(exp) <- qnms1
tmp <- Summarize(~q2,data=d1)
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2,10)]) # drop nvalid & percZero from expectations
tmp <- Summarize(~q2,data=d1,nvalid="always")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(10)]) # drop percZero from expectations
tmp <- Summarize(~q2,data=d1,percZero="always")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2)]) # drop nvalid from expectations
tmp <- Summarize(~q2,data=d1,nvalid="always",percZero="always")
expect_is(tmp,"numeric")
expect_equal(tmp,exp)
## no NAs, but zeros
exp <- c(9,9,4,sd(d1$q1),0,2,4,6,8,1/9*100) # all possible results
names(exp) <- qnms1
tmp <- Summarize(~q1,data=d1)
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2)]) # drop nvalid from expectations
tmp <- Summarize(~q1,data=d1,percZero="never")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2,10)]) # drop nvalid & percZero from expectations
tmp <- Summarize(~q1,data=d1,nvalid="always",percZero="never")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(10)]) # drop percZero from expectations
tmp <- Summarize(~q1,data=d1,nvalid="always")
expect_is(tmp,"numeric")
expect_equal(tmp,exp)
## NAs and zeros
exp <- c(9,8,3.5,round(sd(d1$q4,na.rm=TRUE),getOption("digits"))
,0,1.75,3.5,5.25,7,1/8*100) # all possible results
names(exp) <- qnms1
tmp <- Summarize(~q4,data=d1)
expect_is(tmp,"numeric")
expect_equal(tmp,exp)
tmp <- Summarize(~q4,data=d1,nvalid="never",percZero="never")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2,10)]) # drop nvalid & percZero from expectations
tmp <- Summarize(~q4,data=d1,percZero="never")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(10)]) # drop percZero from expectations
tmp <- Summarize(~q4,data=d1,nvalid="never")
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2)]) # drop nvalid from expectations
})
test_that("Summarize() results, quantitative variable by single factor",{
## no NAs or zeros
exp <- data.frame(f1=factor(c("A","B","C")),n=rep(3,3),nvalid=rep(3,3),
mean=c(12,15,18),sd=rep(1,3),min=c(11,14,17),
Q1=c(11,14,17)+0.5,median=c(12,15,18),Q3=c(12,15,18)+0.5,
max=c(13,16,19),percZero=rep(0,3),
stringsAsFactors=FALSE)
tmp <- Summarize(q2~f1,data=d1)
expect_is(tmp,"data.frame")
expect_equal(tmp,exp[,-c(3,11)])
tmp <- Summarize(q2~f1,data=d1,nvalid="always")
expect_equal(tmp,exp[,-c(11)]) # drop percZero from expectations
tmp <- Summarize(q2~f1,data=d1,percZero="always")
expect_equal(tmp,exp[,-c(3)]) # drop nvalid from expectations
tmp <- Summarize(q2~f1,data=d1,nvalid="always",percZero="always")
expect_equal(tmp,exp) # drop nvalid & percZero from expectations
## no NAs, but zeros
exp <- data.frame(f1=factor(c("A","B","C")),n=rep(3,3),nvalid=rep(3,3),
mean=c(1,4,7),sd=rep(1,3),min=c(0,3,6),
Q1=c(0,3,6)+0.5,median=c(1,4,7),Q3=c(1,4,7)+0.5,
max=c(2,5,8),percZero=c(1,0,0)/3*100,
stringsAsFactors=FALSE)
tmp <- Summarize(q1~f1,data=d1)
expect_is(tmp,"data.frame")
expect_equal(tmp,exp[,-c(3)]) # drop nvalid from expectations
tmp <- Summarize(q1~f1,data=d1,percZero="never")
expect_equal(tmp,exp[,-c(3,11)]) # drop nvalid & percZero from expectations
tmp <- Summarize(q1~f1,data=d1,nvalid="always",percZero="never")
expect_equal(tmp,exp[,-c(11)]) # drop percZero from expectations
tmp <- Summarize(q1~f1,data=d1,nvalid="always")
expect_equal(tmp,exp)
## NAs and zeros
exp <- data.frame(f1=factor(c("A","B","C")),n=rep(3,3),nvalid=c(2,3,3),
mean=c(0.5,3,6),sd=round(c(sqrt(2)/2,1,1),
getOption("digits")),min=c(0,2,5),
Q1=c(0.25,2.5,5.5),median=c(0.5,3,6),Q3=c(0.75,3.5,6.5),
max=c(1,4,7),percZero=c(50,0,0),
stringsAsFactors=FALSE)
tmp <- Summarize(q4~f1,data=d1)
expect_is(tmp,"data.frame")
expect_equal(tmp,exp)
tmp <- Summarize(q4~f1,data=d1,nvalid="never",percZero="never")
expect_equal(tmp,exp[,-c(3,11)]) # drop nvalid & percZero from expectations
tmp <- Summarize(q4~f1,data=d1,percZero="never")
expect_equal(tmp,exp[,-c(11)]) # drop percZero from expectations
tmp <- Summarize(q4~f1,data=d1,nvalid="never")
expect_equal(tmp,exp[,-c(3)]) # drop nvalid from expectations
})
test_that("Summarize() results, quantitative variable by single character",{
exp <- data.frame(c1=c("A","B","C"),n=rep(3,3),nvalid=rep(3,3),
mean=c(12,15,18),sd=rep(1,3),min=c(11,14,17),
Q1=c(11,14,17)+0.5,median=c(12,15,18),Q3=c(12,15,18)+0.5,
max=c(13,16,19),percZero=rep(0,3),stringsAsFactors=FALSE)
tmp <- Summarize(q2~c1,data=d1)
expect_is(tmp,"data.frame")
expect_equal(tmp,exp[,-c(3,11)])
tmp <- Summarize(q2~c1,data=d1,nvalid="always")
expect_equal(tmp,exp[,-c(11)]) # drop percZero from expectations
tmp <- Summarize(q2~c1,data=d1,percZero="always")
expect_equal(tmp,exp[,-c(3)]) # drop nvalid from expectations
tmp <- Summarize(q2~c1,data=d1,nvalid="always",percZero="always")
expect_equal(tmp,exp) # drop nvalid & percZero from expectations
})
test_that("Summarize() results, quantitative variable by two factors",{
exp <- data.frame(f2=factor(rep(c("a","b","c"),3)),
f1=factor(rep(c("A","B","C"),each=3)),
n=rep(1,9),nvalid=rep(1,9),mean=11:19,
sd=as.numeric(rep(NA,9)),min=11:19,Q1=11:19,median=11:19,
Q3=11:19,max=11:19,percZero=rep(0,9),
stringsAsFactors=FALSE)
tmp <- Summarize(q2~f2+f1,data=d1)
expect_is(tmp,"data.frame")
expect_equal(tmp,exp[,-c(4,12)]) # drop nvalid & percZero from expectations
tmp <- Summarize(q2~f2+f1,data=d1,nvalid="always")
expect_equal(tmp,exp[,-c(12)]) # drop percZero from expectations
tmp <- Summarize(q2~f2+f1,data=d1,percZero="always")
expect_equal(tmp,exp[,-c(4)]) # drop nvalid from expectations
tmp <- Summarize(q2~f2+f1,data=d1,nvalid="always",percZero="always")
expect_equal(tmp,exp)
})
test_that("Summarize() results using exclude=",{
exp <- data.frame(f1=factor(c("B","C")),n=c(3,3),nvalid=c(3,3),
mean=c(3,6),sd=c(1,1),min=c(2,5),
Q1=c(2.5,5.5),median=c(3,6),Q3=c(3.5,6.5),
max=c(4,7),percZero=rep(0,2),
stringsAsFactors=FALSE)
tmp <- Summarize(q4~f1,data=d1,exclude="A")
expect_is(tmp,"data.frame")
expect_equal(tmp,exp[,-c(3,11)]) # drop nvalid & percZero from expectations
})
test_that("Summarize() Results from 1-d matrices and data.frames",{
## Matrix
d <- matrix(1:9,ncol=1)
tmp <- Summarize(d)
exp <- c(9,9,5,sd(d),1,3,5,7,9,0)
names(exp) <- qnms1
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2,10)]) # drop nvalid and percZero from expectations
tmp <- Summarize(d,nvalid="always")
expect_equal(tmp,exp[-c(10)]) # drop percZero from expectations
## data.frame
d <- as.data.frame(matrix(1:9,ncol=1))
tmp <- Summarize(~V1,data=d)
exp <- c(9,9,5,sd(d$V1),1,3,5,7,9,0)
names(exp) <- qnms1
expect_is(tmp,"numeric")
expect_equal(tmp,exp[-c(2,10)]) # drop nvalid and percZero from expectations
tmp <- Summarize(~V1,data=d,percZero="always")
expect_equal(tmp,exp[-c(2)]) # drop nvalid from expectations
})
test_that("Summarize() results, assure 'by' variable is the expected mode/type",{
expect_is(Summarize(q1~f1,data=d1)$f1,"factor")
expect_is(Summarize(q1~c1,data=d1)$c1,"character")
expect_is(Summarize(q1~q3,data=d1)$q3,"numeric")
tmp <- Summarize(q1~f1+f2,data=d1)
expect_is(tmp$f1,"factor")
expect_is(tmp$f2,"factor")
tmp <- Summarize(q1~c1+f1,data=d1)
expect_is(tmp$c1,"character")
expect_is(tmp$f1,"factor")
tmp <- Summarize(q1~c1+q3,data=d1)
expect_is(tmp$c1,"character")
expect_is(tmp$q3,"numeric")
tmp <- Summarize(q1~f1+q3,data=d1)
expect_is(tmp$f1,"factor")
expect_is(tmp$q3,"numeric")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.