Nothing
test_that("col_names = FALSE mimics missing column names [xlsx]", {
df1 <- read_excel(
test_sheet("no-yes-col-names.xlsx"),
sheet = "no-col-names",
col_names = FALSE
)
df2 <- read_excel(
test_sheet("no-yes-col-names.xlsx"),
sheet = "yes-col-names",
skip = 1,
col_names = c("", "")
)
df3 <- read_excel(
test_sheet("no-yes-col-names.xlsx"),
## A1 and B1 aren't truly empty -- contain invisible single quotes, so we
## don't skip over them
sheet = "empty-col-names"
)
expect_identical(df1, df2)
expect_identical(df2, df3)
})
test_that("col_names = FALSE mimics missing column names [xls]", {
df1 <- read_excel(
test_sheet("no-yes-col-names.xls"),
sheet = "no-col-names",
col_names = FALSE
)
df2 <- read_excel(
test_sheet("no-yes-col-names.xls"),
sheet = "yes-col-names",
skip = 1,
col_names = c("", "")
)
df3 <- read_excel(
test_sheet("no-yes-col-names.xls"),
## A1 and B1 aren't truly empty -- contain invisible single quotes, so we
## don't skip over them
sheet = "empty-col-names"
)
expect_identical(df1, df2)
expect_identical(df2, df3)
})
test_that("missing column names are populated", {
nms <- c("...1", "...3")
df <- read_excel(test_sheet("unnamed-duplicated-columns.xlsx"))
expect_identical(names(df)[c(1, 3)], nms)
df <- read_excel(test_sheet("unnamed-duplicated-columns.xls"))
expect_identical(names(df)[c(1, 3)], nms)
})
test_that("column names are de-duplicated", {
nm <- "var2...4"
df <- read_excel(test_sheet("unnamed-duplicated-columns.xlsx"))
expect_identical(names(df)[4], nm)
df <- read_excel(test_sheet("unnamed-duplicated-columns.xls"))
expect_identical(names(df)[4], nm)
})
test_that("wrong length column names are rejected", {
expect_snapshot(
error = TRUE,
read_excel(test_sheet("iris-excel-xlsx.xlsx"), col_names = LETTERS[1:3])
)
expect_snapshot(
error = TRUE,
read_excel(test_sheet("iris-excel-xls.xls"), col_names = LETTERS[1:3])
)
})
test_that("column_names can anticipate skipping", {
## xlsx
df <- read_excel(
test_sheet("iris-excel-xlsx.xlsx"),
col_names = c("one", "two", "three"), skip = 1,
col_types = c("numeric", "numeric", "skip", "skip", "text")
)
expect_identical(dim(df), c(150L, 3L))
expect_identical(names(df), c("one", "two", "three"))
## xls
df <- read_excel(
test_sheet("iris-excel-xls.xls"),
col_names = c("one", "two", "three"), skip = 1,
col_types = c("numeric", "numeric", "skip", "skip", "text")
)
expect_identical(dim(df), c(150L, 3L))
expect_identical(names(df), c("one", "two", "three"))
})
test_that(".name_repair is passed through to tibble", {
expect_colnames <- function(df, expected) {
expect_identical(colnames(df), expected)
}
## default is "unique"
nms <- c("a b...1", "a b...2", "...3", "c%&$")
xlsx <- read_excel(test_sheet("names-need-repair-xlsx.xlsx"))
expect_colnames(xlsx, nms)
xls <- read_excel(test_sheet("names-need-repair-xls.xls"))
expect_colnames(xls, nms)
## "universal" names are available
nms <- c("a.b...1", "a.b...2", "...3", "c...")
xlsx <- read_excel(test_sheet("names-need-repair-xlsx.xlsx"), .name_repair = "universal")
expect_colnames(xlsx, nms)
xls <- read_excel(test_sheet("names-need-repair-xls.xls"), .name_repair = "universal")
expect_colnames(xls, nms)
## "minimal" names are available
nms <- c("", "var2", "", "var2")
xlsx <- read_excel(test_sheet("unnamed-duplicated-columns.xlsx"), .name_repair = "minimal")
expect_colnames(xlsx, nms)
xls <- read_excel(test_sheet("unnamed-duplicated-columns.xls"), .name_repair = "minimal")
expect_colnames(xls, nms)
## specify name repair as a built-in function
nms <- c("SEPAL.LENGTH", "SEPAL.WIDTH", "PETAL.LENGTH", "PETAL.WIDTH", "SPECIES")
xlsx <- read_excel(test_sheet("iris-excel-xlsx.xlsx"), .name_repair = toupper)
expect_colnames(xlsx, nms)
xls <- read_excel(test_sheet("iris-excel-xls.xls"), .name_repair = toupper)
expect_colnames(xls, nms)
## specify name repair as a custom function
nms <- c("sepal_length", "sepal_width", "petal_length", "petal_width", "species")
custom_name_repair <- function(nms) tolower(gsub("[.]", "_", nms))
xlsx <- read_excel(test_sheet("iris-excel-xlsx.xlsx"), .name_repair = custom_name_repair)
expect_colnames(xlsx, nms)
xls <- read_excel(test_sheet("iris-excel-xls.xls"), .name_repair = custom_name_repair)
expect_colnames(xls, nms)
## specify name repair as an anonymous function
nms <- c("wei", "fee")
xlsx <- read_excel(
readxl_example("datasets.xlsx"),
sheet = "chickwts",
.name_repair = ~ substr(.x, start = 1, stop = 3)
)
expect_colnames(xlsx, nms)
xls <- read_excel(
readxl_example("datasets.xls"),
sheet = "chickwts",
.name_repair = ~ substr(.x, start = 1, stop = 3)
)
expect_colnames(xls, nms)
})
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.