test_that("rownames_as_column works", {
test <- rownames_as_column(mtcars, "new_column")
expect_true("new_column" %in% names(test))
expect_identical(test[1, "new_column"], "Mazda RX4")
})
test_that("rownames_as_column doesn't work if var is not a character", {
expect_error(rownames_as_column(mtcars, var = 1),
regexp = "Argument 'var' must be of type character"
)
expect_error(rownames_as_column(mtcars, var = TRUE),
regexp = "Argument 'var' must be of type character"
)
})
test_that("rownames_as_column uses 'rowname' as default column name", {
test <- rownames_as_column(mtcars, var = NULL)
expect_true("rowname" %in% names(test))
})
test_that("rownames_as_column preserves labels", {
test_data <- mtcars
test_data <- assign_labels(test_data, select = "hp", variable = "horsepower")
# ungrouped
with_id <- rownames_as_column(test_data)
expect_identical(
attributes(with_id$hp)$label,
"horsepower"
)
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- rownames_as_column(with_id_grouped)
expect_identical(
attributes(with_id_grouped$hp)$label,
"horsepower"
)
})
test_that("rownames_as_column preserves other attribs", {
test_data <- standardize(mtcars)
# ungrouped
with_id <- rownames_as_column(test_data)
expect_false(is.null(attributes(with_id)$center))
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- rownames_as_column(with_id_grouped)
expect_false(is.null(attributes(with_id_grouped)$center))
})
test_that("rownames_as_column errors if already var of same name", {
expect_error(
rownames_as_column(mtcars, "mpg"),
"already a variable named"
)
})
#-------------------------------------------------
test_that("rowid_as_column works", {
test <- rowid_as_column(mtcars, "new_column")
expect_true("new_column" %in% names(test))
expect_identical(test$new_column, 1:32)
})
test_that("rowid_as_column works with grouped data", {
test_data <- data_group(iris, "Species")
test <- rowid_as_column(test_data)
expect_identical(test$rowid, rep(1:50, 3))
expect_true("rowid" %in% names(test))
})
test_that("rowid_as_column doesn't work if var is not a character", {
expect_error(rowid_as_column(mtcars, var = 1),
regexp = "Argument 'var' must be of type character"
)
expect_error(rowid_as_column(mtcars, var = TRUE),
regexp = "Argument 'var' must be of type character"
)
})
test_that("rowid_as_column uses 'rowid' as default column name", {
test <- rowid_as_column(mtcars, var = NULL)
expect_true("rowid" %in% names(test))
})
test_that("rowid_as_column preserves labels", {
test_data <- mtcars
test_data <- assign_labels(test_data, select = "hp", variable = "horsepower")
# ungrouped
with_id <- rowid_as_column(test_data)
expect_identical(
attributes(with_id$hp)$label,
"horsepower"
)
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- rowid_as_column(with_id_grouped)
expect_identical(
attributes(with_id_grouped$hp)$label,
"horsepower"
)
})
test_that("rowid_as_column preserves other attribs", {
test_data <- standardize(mtcars)
# ungrouped
with_id <- rowid_as_column(test_data)
expect_false(is.null(attributes(with_id)$center))
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- rowid_as_column(with_id_grouped)
expect_false(is.null(attributes(with_id_grouped)$center))
})
test_that("rowid_as_column has no issue if another variable is called 'var'", {
foo <- data.frame(
grp = c("A", "A", "B", "B"),
var = 1:4,
stringsAsFactors = FALSE
)
out <- data_group(foo, grp)
out <- rowid_as_column(out)
expect_named(out, c("rowid", "grp", "var"))
})
test_that("rowid_as_column errors if already var of same name", {
expect_error(
rowid_as_column(mtcars, "mpg"),
"already a variable named"
)
})
#-------------------------------------------------
test_that("column_as_rownames works", {
continents <- c("Africa", "Asia", "Europe", "North America", "Oceania", "South America")
test <- data.frame(
continent = continents,
some_value = seq(1, 6, by = 1)
)
test2 <- column_as_rownames(test, "continent")
expect_identical(rownames(test2), continents)
expect_identical(ncol(test2), 1L)
test3 <- column_as_rownames(test, 1)
expect_identical(rownames(test3), continents)
expect_identical(ncol(test3), 1L)
})
test_that("column_as_rownames sanity checks work", {
continents <- c("Africa", "Asia", "Europe", "North America", "Oceania", "South America")
test <- data.frame(
continent = continents,
some_value = seq(1, 6, by = 1)
)
expect_error(column_as_rownames(test, TRUE),
regexp = "Argument `var`"
)
expect_error(column_as_rownames(test, "foo"),
regexp = "not in the data frame"
)
expect_error(column_as_rownames(test, 0),
regexp = "does not exist"
)
expect_error(column_as_rownames(test, 3),
regexp = "does not exist"
)
})
test_that("rownames_as_column and column_as_rownames cancel each other", {
test <- rownames_as_column(mtcars)
test2 <- column_as_rownames(test)
expect_identical(test2, mtcars)
})
test_that("column_as_rownames preserves labels", {
test_data <- rownames_as_column(mtcars)
test_data <- assign_labels(test_data, select = "hp", variable = "horsepower")
# ungrouped
with_id <- column_as_rownames(test_data)
expect_identical(
attributes(with_id$hp)$label,
"horsepower"
)
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- column_as_rownames(with_id_grouped)
expect_identical(
attributes(with_id_grouped$hp)$label,
"horsepower"
)
})
test_that("column_as_rownames preserves other attribs", {
test_data <- rownames_as_column(standardize(mtcars))
# ungrouped
with_id <- column_as_rownames(test_data, "rowname")
expect_false(is.null(attributes(with_id)$center))
# grouped
with_id_grouped <- data_group(test_data, "cyl")
with_id_grouped <- column_as_rownames(with_id_grouped)
expect_false(is.null(attributes(with_id_grouped)$center))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.