Nothing
prt <- read.table(header = TRUE, text = '
sex internship enrollment count
1 boys yes yes 35
2 boys no yes 14
3 girls yes yes 32
4 girls no yes 53
5 boys yes no 29
6 boys no no 27
7 girls yes no 10
8 girls no no 23')
test_that("override1: sort.data.frame() works as expected.", {
# Sample data frame to sort
dt <- mtcars[1:10, 1:3]
dt
# Sorts all columns
dt1 <- sort.data.frame(dt[ ,c("cyl", "disp")])
dt1
expect_equal(ncol(dt1), 2)
expect_equal(dt1[1, 1], 4)
expect_equal(dt1[10, 1], 8)
# Generic works
dt2 <- sort(dt[ ,c("cyl", "disp")])
dt2
expect_equal(ncol(dt2), 2)
expect_equal(dt2[1, 1], 4)
expect_equal(dt2[10, 1], 8)
# By works
dt3 <- sort(dt, by = c("cyl", "disp"))
dt3
dt4 <- sort(dt,
by = c("cyl", "disp"),
ascending = c(FALSE, TRUE))
dt4
expect_equal(ncol(dt4), 3)
expect_equal(dt4[1, 2], 8)
expect_equal(dt4[10, 2], 4)
# index.return works
ord1 <- sort(dt, by = c("mpg"), index.return = TRUE)
ord1
expect_equal(is.vector(ord1), TRUE)
dt5 <- dt[ord1, ]
dt5
expect_equal(ncol(dt5), 3)
expect_equal(dt5[1, 1], 14.3)
expect_equal(dt5[10, 1], 24.4)
# Single by works and returns data frame
dt6 <- sort(dt, by = c( "disp"))
dt6
expect_equal("data.frame" %in% class(dt6), TRUE)
expect_equal(ncol(dt6), 3)
expect_equal(dt6[1, 3], 108)
expect_equal(dt6[10, 3], 360)
# Test with NA value
dt_mod <- dt
dt_mod[2, 3] <- NA
dt_mod$names <- rownames(dt_mod)
dt_mod[5, 4] <- NA
dt7 <- sort(dt_mod, by = c( "disp"), na.last = TRUE)
dt7
expect_equal(is.na(dt7[1, 3]), FALSE)
expect_equal(is.na(dt7[10, 3]), TRUE)
dt8 <- sort(dt_mod, by = c( "disp"), na.last = FALSE)
dt8
expect_equal(is.na(dt8[1, 3]), TRUE)
expect_equal(is.na(dt8[10, 3]), FALSE)
dt9 <- sort(dt_mod, by = c( "names"), na.last = TRUE)
dt9
expect_equal(is.na(dt9[1, 4]), FALSE)
expect_equal(is.na(dt9[10, 4]), TRUE)
dt10 <- sort(dt_mod, by = c( "names"), na.last = FALSE)
dt10
expect_equal(is.na(dt10[1, 4]), TRUE)
expect_equal(is.na(dt10[10, 4]), FALSE)
dt11 <- sort(dt_mod, by = c("disp", "names"), na.last = TRUE)
dt11
expect_equal(is.na(dt11[9, 4]), TRUE)
expect_equal(is.na(dt11[10, 3]), TRUE)
expect_error(sort(dt_mod, by = "fork"))
})
test_that("override2: labels() function works as expected.", {
# Basic functioning
df1 <- mtcars[1:10, c("mpg", "cyl") ]
df1
# Assign widths
labels(df1) <- list(mpg = "Miles Per Gallon",
cyl = "Cylinders")
# Extract format list
lst <- labels.data.frame(df1)
expect_equal(length(lst), 2)
expect_equal(lst, list(mpg = "Miles Per Gallon", cyl = "Cylinders"))
# Clearning labels works
labels(df1)
labels(df1) <- NULL
expect_equal(length(labels(df1)), 0)
# Parameter Check
s <- "hello"
expect_error(labels(s) <- list(a = "One"))
dat <- mtcars
names(dat) <- NULL
# No error generated now
labels(dat) <- list(a = "One")
})
test_that("override3: Sort retains df attributes", {
# Sample data frame to sort
dt <- mtcars[1:10, 1:3]
dt
labels(dt) <- list(mpg = "Miles Per Gallon",
cyl = "Cylinders",
disp = "Displacement")
# Sorts all columns
dt1 <- sort.data.frame(dt, by = c("cyl"))
dt1
res <- labels(dt1)
res
expect_equal(length(res), 3)
})
test_that("override4: Sort of two factors works as expected.", {
prtsp <- prt
prtsp$enrollment[4] <- NA
prtsp$sex[2] <- NA
prtsp$sex <- factor(prtsp$sex, levels = c("girls", "boys"))
prtsp$enrollment <- factor(prtsp$enrollment, levels = c("yes", "no"))
res <- sort(prtsp, by = c("sex", "enrollment"))
res
expect_equal(unique(as.character(res$sex)), c("girls", "boys", NA))
expect_equal(unique(as.character(res$enrollment)), c("yes", "no", NA))
})
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.