data(efc)
test_that("data_extract works with select-length > 1", {
# works with multiple selects
expect_s3_class(data_extract(efc, select = c("e42dep", "c172code")), "data.frame")
# colnames properly set
expect_named(
data_extract(efc, select = c("e42dep", "c172code")),
c("e42dep", "c172code")
)
# properly extract vector, w/o naming
expect_identical(data_extract(efc, select = "e42dep"), efc$e42dep)
# properly extract vector, with naming
x <- data_extract(efc, select = "e42dep", name = "c172code")
expect_named(x, as.character(efc$c172code))
})
test_that("data_extract works with select-helpers", {
expect_identical(
data_extract(iris, starts_with("Sepal")),
iris[c("Sepal.Length", "Sepal.Width")]
)
expect_identical(
data_extract(iris, 1:3),
iris[1:3]
)
expect_identical(
data_extract(iris, "Species"),
iris$Species
)
expect_identical(
data_extract(iris, contains("Wid")),
iris[c("Sepal.Width", "Petal.Width")]
)
expect_identical(
data_extract(iris, Sepal.Width),
iris$Sepal.Width
)
})
test_that("data_extract works with formulas", {
expect_identical(
data_extract(iris, ~ Sepal.Width + Species),
iris[c("Sepal.Width", "Species")]
)
})
test_that("data_extract from other functions", {
test_fun <- function(data, i) {
data_extract(data, select = i)
}
expect_identical(
test_fun(iris, c("Sepal.Length", "Sepal.Width")),
iris[c("Sepal.Length", "Sepal.Width")]
)
})
test_that("data_extract extract, pull", {
expect_identical(
data_extract(iris, starts_with("Sepal")),
iris[c("Sepal.Length", "Sepal.Width")]
)
expect_identical(
data_extract(iris, starts_with("Sepal"), extract = "first"),
iris$Sepal.Length
)
expect_identical(
data_extract(iris, starts_with("Sepal"), extract = "last"),
iris$Sepal.Width
)
expect_identical(
data_extract(iris, starts_with("Sepal"), extract = "last", as_data_frame = TRUE),
iris["Sepal.Width"]
)
expect_identical(
colnames(data_extract(mtcars, contains("a"))),
c("drat", "am", "gear", "carb")
)
expect_identical(
colnames(data_extract(mtcars, contains("a"), extract = "odd")),
c("drat", "gear")
)
expect_identical(
colnames(data_extract(mtcars, contains("a"), extract = "even")),
c("am", "carb")
)
expect_identical(
colnames(data_extract(mtcars, cyl:drat)),
c("cyl", "disp", "hp", "drat")
)
expect_error(colnames(data_extract(mtcars, Cyl:Drat)))
expect_identical(
colnames(data_extract(mtcars, Cyl:Drat, ignore_case = TRUE)),
c("cyl", "disp", "hp", "drat")
)
expect_identical(
colnames(data_extract(iris, contains("Sep"))),
c("Sepal.Length", "Sepal.Width")
)
expect_null(colnames(data_extract(iris, contains("sep"))))
expect_identical(
colnames(data_extract(iris, contains("sep"), ignore_case = TRUE)),
c("Sepal.Length", "Sepal.Width")
)
expect_identical(
colnames(data_extract(iris, c(1:2, 5))),
c("Sepal.Length", "Sepal.Width", "Species")
)
})
# select helpers ------------------------------
test_that("data_extract regex", {
expect_identical(
data_extract(mtcars, select = "pg", regex = TRUE),
data_extract(mtcars, select = "mpg")
)
expect_identical(
data_extract(mtcars, select = "pg$", regex = TRUE),
data_extract(mtcars, select = "mpg")
)
})
test_that("data_extract: 'name' is numeric", {
expect_identical(
data_extract(mtcars, "gear", 1),
data_extract(mtcars, "gear", "mpg")
)
expect_identical(
data_extract(mtcars, "gear", -2),
data_extract(mtcars, "gear", "gear")
)
expect_identical(
data_extract(mtcars, "gear", 0),
data_extract(mtcars, "gear", "row.names")
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.