611 lines
17 KiB
R
611 lines
17 KiB
R
|
## ---- include = FALSE---------------------------------------------------------
|
||
|
# To suppress messages
|
||
|
library(tibble)
|
||
|
library(vctrs)
|
||
|
|
||
|
knitr::opts_chunk$set(
|
||
|
collapse = TRUE,
|
||
|
comment = "#>",
|
||
|
error = TRUE
|
||
|
)
|
||
|
tibble:::set_dftbl_hooks()
|
||
|
|
||
|
options(
|
||
|
lifecycle_verbosity = "warning",
|
||
|
lifecycle_disable_warnings = FALSE,
|
||
|
lifecycle_verbose_soft_deprecation = TRUE,
|
||
|
lifecycle_repeat_warnings = TRUE
|
||
|
)
|
||
|
|
||
|
# Set to FALSE for production
|
||
|
eval_details <- (Sys.getenv("IN_GALLEY") != "")
|
||
|
|
||
|
## ----setup--------------------------------------------------------------------
|
||
|
library(tibble)
|
||
|
library(vctrs)
|
||
|
|
||
|
new_df <- function() {
|
||
|
df <- data.frame(n = c(1L, NA, 3L, NA))
|
||
|
df$c <- letters[5:8]
|
||
|
df$li <- list(9, 10:11, 12:14, "text")
|
||
|
df
|
||
|
}
|
||
|
|
||
|
new_tbl <- function() {
|
||
|
as_tibble(new_df())
|
||
|
}
|
||
|
|
||
|
## ----show, dftbl = TRUE, dftbl_always = TRUE----------------------------------
|
||
|
new_df()
|
||
|
new_tbl()
|
||
|
|
||
|
## ----ro-----------------------------------------------------------------------
|
||
|
df <- new_df()
|
||
|
tbl <- new_tbl()
|
||
|
|
||
|
## ----setup2-------------------------------------------------------------------
|
||
|
new_tbl2 <- function() {
|
||
|
tibble(
|
||
|
tb = tbl,
|
||
|
m = diag(4)
|
||
|
)
|
||
|
}
|
||
|
|
||
|
new_df2 <- function() {
|
||
|
df2 <- new_tbl2()
|
||
|
class(df2) <- "data.frame"
|
||
|
class(df2$tb) <- "data.frame"
|
||
|
df2
|
||
|
}
|
||
|
|
||
|
df2 <- new_df2()
|
||
|
tbl2 <- new_tbl2()
|
||
|
|
||
|
## ----show-compare-2, dftbl = TRUE---------------------------------------------
|
||
|
|
||
|
new_tbl()
|
||
|
|
||
|
## ----with-def, include = FALSE------------------------------------------------
|
||
|
with_df <- function(code, verbose = FALSE) {
|
||
|
code <- rlang::enexpr(code)
|
||
|
|
||
|
full_code <- rlang::quo({
|
||
|
df <- new_df()
|
||
|
!!code
|
||
|
df
|
||
|
})
|
||
|
if (verbose) rlang::expr_print(rlang::quo_get_expr(full_code))
|
||
|
rlang::eval_tidy(full_code)
|
||
|
}
|
||
|
|
||
|
with_tbl <- function(code, verbose = FALSE) {
|
||
|
code <- rlang::enexpr(code)
|
||
|
|
||
|
full_code <- rlang::quo({
|
||
|
tbl <- new_tbl()
|
||
|
!!code
|
||
|
tbl
|
||
|
})
|
||
|
if (verbose) rlang::expr_print(rlang::quo_get_expr(full_code))
|
||
|
rlang::eval_tidy(full_code)
|
||
|
}
|
||
|
|
||
|
with_df2 <- function(code) {
|
||
|
code <- rlang::enexpr(code)
|
||
|
|
||
|
full_code <- rlang::quo({
|
||
|
df2 <- new_df2()
|
||
|
!!code
|
||
|
df2
|
||
|
})
|
||
|
rlang::eval_tidy(full_code)
|
||
|
}
|
||
|
|
||
|
with_tbl2 <- function(code) {
|
||
|
code <- rlang::enexpr(code)
|
||
|
|
||
|
full_code <- rlang::quo({
|
||
|
tbl2 <- new_tbl2()
|
||
|
!!code
|
||
|
tbl2
|
||
|
})
|
||
|
rlang::eval_tidy(full_code)
|
||
|
}
|
||
|
|
||
|
## ----with-demo, dftbl = TRUE--------------------------------------------------
|
||
|
with_df(df$n <- rev(df$n), verbose = TRUE)
|
||
|
with_tbl(tbl$n <- rev(tbl$n), verbose = TRUE)
|
||
|
|
||
|
## ----double-bracket-equivalent-to-subset2, dftbl = TRUE-----------------------
|
||
|
|
||
|
tbl[[1]]
|
||
|
|
||
|
.subset2(tbl, 1)
|
||
|
|
||
|
## ----double-bracket-equivalent-to-subset2-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# identical(df[[3]], .subset2(df, 3))
|
||
|
# identical(tbl[[3]], .subset2(tbl, 3))
|
||
|
# identical(df2[["df"]], .subset2(df2, "df"))
|
||
|
# identical(tbl2[["tbl"]], .subset2(tbl2, "tbl"))
|
||
|
|
||
|
## ----double-bracket-retains-size, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# vec_size(df[[1]])
|
||
|
# vec_size(tbl[[1]])
|
||
|
# vec_size(df[[3]])
|
||
|
# vec_size(tbl[[3]])
|
||
|
# vec_size(df2[[1]])
|
||
|
# vec_size(tbl2[[1]])
|
||
|
# vec_size(df2[[2]])
|
||
|
# vec_size(tbl2[[2]])
|
||
|
|
||
|
## ----double-bracket-requires-scalar-j-index, dftbl = TRUE---------------------
|
||
|
df[[1:2]]
|
||
|
tbl[[1:2]]
|
||
|
df[[c("n", "c")]]
|
||
|
tbl[[c("n", "c")]]
|
||
|
df[[TRUE]]
|
||
|
tbl[[TRUE]]
|
||
|
df[[mean]]
|
||
|
tbl[[mean]]
|
||
|
|
||
|
## ----double-bracket-j-oob-numeric, dftbl = TRUE-------------------------------
|
||
|
df[[NA]]
|
||
|
tbl[[NA]]
|
||
|
df[[NA_character_]]
|
||
|
tbl[[NA_character_]]
|
||
|
df[[NA_integer_]]
|
||
|
tbl[[NA_integer_]]
|
||
|
df[[-1]]
|
||
|
tbl[[-1]]
|
||
|
df[[4]]
|
||
|
tbl[[4]]
|
||
|
df[[1.5]]
|
||
|
tbl[[1.5]]
|
||
|
df[[Inf]]
|
||
|
tbl[[Inf]]
|
||
|
|
||
|
## ----double-bracket-j-oob-character, dftbl = TRUE-----------------------------
|
||
|
|
||
|
tbl[["x"]]
|
||
|
|
||
|
## ----dollar-equivalent-to-subset, dftbl = TRUE--------------------------------
|
||
|
|
||
|
tbl$n
|
||
|
|
||
|
tbl$"n"
|
||
|
|
||
|
tbl[["n"]]
|
||
|
|
||
|
## ----dollar-equivalent-to-subset-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# identical(df$li, df[["li"]])
|
||
|
# identical(tbl$li, tbl[["li"]])
|
||
|
# identical(df2$tb, df2[["tb"]])
|
||
|
# identical(tbl2$tb, tbl2[["tb"]])
|
||
|
# identical(df2$m, df2[["m"]])
|
||
|
# identical(tbl2$m, tbl2[["m"]])
|
||
|
|
||
|
## ----dollar-equivalent-to-subset-pmatch, dftbl = TRUE-------------------------
|
||
|
df$l
|
||
|
tbl$l
|
||
|
df$not_present
|
||
|
tbl$not_present
|
||
|
|
||
|
## ----bracket-j-definition, dftbl = TRUE---------------------------------------
|
||
|
|
||
|
tbl[1:2]
|
||
|
|
||
|
## ----bracket-j-duplication, dftbl = TRUE--------------------------------------
|
||
|
df[c(1, 1)]
|
||
|
tbl[c(1, 1)]
|
||
|
|
||
|
## ----bracket-j-empty, dftbl = TRUE--------------------------------------------
|
||
|
|
||
|
tbl[integer()]
|
||
|
|
||
|
## ----bracket-j-logical-matrix, dftbl = TRUE-----------------------------------
|
||
|
df[is.na(df)]
|
||
|
tbl[is.na(tbl)]
|
||
|
df[!is.na(df)]
|
||
|
tbl[!is.na(tbl)]
|
||
|
|
||
|
## ----bracket-missing-i, dftbl = TRUE------------------------------------------
|
||
|
df[, 1]
|
||
|
tbl[, 1]
|
||
|
|
||
|
tbl[, 1:2]
|
||
|
|
||
|
## ----bracket-missing-i-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# identical(df[, 2:3], df[2:3])
|
||
|
# identical(tbl[, 2:3], tbl[2:3])
|
||
|
# identical(df2[, 1:2], df2[1:2])
|
||
|
# identical(tbl2[, 1:2], tbl2[1:2])
|
||
|
|
||
|
## ----bracket-always-returns-tibble-drop, dftbl = TRUE-------------------------
|
||
|
|
||
|
tbl[, 1, drop = TRUE]
|
||
|
|
||
|
## ----bracket-always-returns-tibble-drop-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# identical(df[, 3, drop = TRUE], df[[3]])
|
||
|
# identical(tbl[, 3, drop = TRUE], tbl[[3]])
|
||
|
# identical(df2[, 1, drop = TRUE], df2[[1]])
|
||
|
# identical(tbl2[, 1, drop = TRUE], tbl2[[1]])
|
||
|
# identical(df2[, 2, drop = TRUE], df2[[2]])
|
||
|
# identical(tbl2[, 2, drop = TRUE], tbl2[[2]])
|
||
|
|
||
|
## ----bracket-i, dftbl = TRUE--------------------------------------------------
|
||
|
|
||
|
tbl[3, ]
|
||
|
|
||
|
## ----bracket-i-wrong-type, dftbl = TRUE---------------------------------------
|
||
|
df[mean, ]
|
||
|
tbl[mean, ]
|
||
|
df[list(1), ]
|
||
|
tbl[list(1), ]
|
||
|
|
||
|
tbl["1", ]
|
||
|
|
||
|
## ----bracket-i-oob, dftbl = TRUE----------------------------------------------
|
||
|
|
||
|
tbl[10, ]
|
||
|
|
||
|
tbl["x", ]
|
||
|
|
||
|
## ----bracket-i-recycle, dftbl = TRUE------------------------------------------
|
||
|
df[c(TRUE, FALSE), ]
|
||
|
tbl[c(TRUE, FALSE), ]
|
||
|
|
||
|
## ----bracket-i-na, dftbl = TRUE-----------------------------------------------
|
||
|
|
||
|
tbl[NA, ]
|
||
|
|
||
|
tbl[NA_integer_, ]
|
||
|
|
||
|
## ----bracket-i-drop, dftbl = TRUE---------------------------------------------
|
||
|
df[1, , drop = TRUE]
|
||
|
tbl[1, , drop = TRUE]
|
||
|
|
||
|
## ----bracket-i-j-equivalent-to-i-subset-then-j, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# df[1, 1]
|
||
|
# tbl[1, 1]
|
||
|
# df[1, ][1]
|
||
|
# tbl[1, ][1]
|
||
|
# identical(df[1, 2:3], df[2:3][1, ])
|
||
|
# identical(tbl[1, 2:3], tbl[2:3][1, ])
|
||
|
# identical(df[2:3, 1], df[1][2:3, ])
|
||
|
# identical(tbl[2:3, 1], tbl[1][2:3, ])
|
||
|
# identical(df2[2:3, 1:2], df2[1:2][2:3, ])
|
||
|
# identical(tbl2[2:3, 1:2], tbl2[1:2][2:3, ])
|
||
|
|
||
|
## ----bracket-bracket-i-j-equivalent-to-i-subset-then-j------------------------
|
||
|
df[[1, 1]]
|
||
|
df[[1, 3]]
|
||
|
|
||
|
## ----double-bracket-assign-definition, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1]] <- 0)
|
||
|
# with_tbl(tbl[[1]] <- 0)
|
||
|
# with_df(df[[3]] <- 4:1)
|
||
|
# with_tbl(tbl[[3]] <- 4:1)
|
||
|
# with_df2(df2[[1]] <- 0)
|
||
|
# with_tbl2(tbl2[[1]] <- 0)
|
||
|
# with_df2(df2[[2]] <- 4:1)
|
||
|
# with_tbl2(tbl2[[2]] <- 4:1)
|
||
|
|
||
|
## ----double-bracket-assign-requires-scalar-j-index, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1]] <- 0)
|
||
|
# with_tbl(tbl[[1]] <- 0)
|
||
|
# with_df(df[["c"]] <- 0)
|
||
|
# with_tbl(tbl[["c"]] <- 0)
|
||
|
|
||
|
## ----double-bracket-assign-requires-scalar-j-index-error, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[TRUE]] <- 0)
|
||
|
# with_tbl(tbl[[TRUE]] <- 0)
|
||
|
# with_df(df[[1:3]] <- 0)
|
||
|
# with_tbl(tbl[[1:3]] <- 0)
|
||
|
# with_df(df[[c("n", "c")]] <- 0)
|
||
|
# with_tbl(tbl[[c("n", "c")]] <- 0)
|
||
|
# with_df(df[[FALSE]] <- 0)
|
||
|
# with_tbl(tbl[[FALSE]] <- 0)
|
||
|
# with_df(df[[1:2]] <- 0)
|
||
|
# with_tbl(tbl[[1:2]] <- 0)
|
||
|
# with_df(df[[NA_integer_]] <- 0)
|
||
|
# with_tbl(tbl[[NA_integer_]] <- 0)
|
||
|
# with_df(df[[NA]] <- 0)
|
||
|
# with_tbl(tbl[[NA]] <- 0)
|
||
|
# with_df(df[[NA_character_]] <- 0)
|
||
|
# with_tbl(tbl[[NA_character_]] <- 0)
|
||
|
|
||
|
## ----double-bracket-assign-recycle, dftbl = TRUE------------------------------
|
||
|
|
||
|
with_tbl(tbl[["li"]] <- list(0))
|
||
|
with_df2(df2[["tb"]] <- df[1, ])
|
||
|
with_tbl2(tbl2[["tb"]] <- tbl[1, ])
|
||
|
with_df2(df2[["m"]] <- df2[["m"]][1, , drop = FALSE])
|
||
|
with_tbl2(tbl2[["m"]] <- tbl2[["m"]][1, , drop = FALSE])
|
||
|
|
||
|
## ----double-bracket-requires-size, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1]] <- 1)
|
||
|
# with_tbl(tbl[[1]] <- 1)
|
||
|
# with_df(df[[1]] <- 4:1)
|
||
|
# with_tbl(tbl[[1]] <- 4:1)
|
||
|
# with_df(df[[1]] <- 3:1)
|
||
|
# with_tbl(tbl[[1]] <- 3:1)
|
||
|
# with_df(df[[1]] <- 2:1)
|
||
|
# with_tbl(tbl[[1]] <- 2:1)
|
||
|
|
||
|
## ----double-bracket-assign-supports-new, dftbl = TRUE-------------------------
|
||
|
|
||
|
with_tbl(tbl[["x"]] <- 0)
|
||
|
with_df(df[[4]] <- 0)
|
||
|
with_tbl(tbl[[4]] <- 0)
|
||
|
with_df(df[[5]] <- 0)
|
||
|
with_tbl(tbl[[5]] <- 0)
|
||
|
|
||
|
## ----double-bracket-assign-supports-type-change, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1]] <- df[[2]])
|
||
|
# with_tbl(tbl[[1]] <- tbl[[2]])
|
||
|
# with_df(df[[2]] <- df[[3]])
|
||
|
# with_tbl(tbl[[2]] <- tbl[[3]])
|
||
|
# with_df(df[[3]] <- df2[[1]])
|
||
|
# with_tbl(tbl[[3]] <- tbl2[[1]])
|
||
|
# with_df2(df2[[1]] <- df2[[2]])
|
||
|
# with_tbl2(tbl2[[1]] <- tbl2[[2]])
|
||
|
# with_df2(df2[[2]] <- df[[1]])
|
||
|
# with_tbl2(tbl2[[2]] <- tbl[[1]])
|
||
|
|
||
|
## ----double-bracket-assign-supports-null, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1]] <- NULL)
|
||
|
# with_tbl(tbl[[1]] <- NULL)
|
||
|
# with_df2(df2[[2]] <- NULL)
|
||
|
# with_tbl2(tbl2[[2]] <- NULL)
|
||
|
|
||
|
## ----double-bracket-assign-supports-null-unknown, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[["q"]] <- NULL)
|
||
|
# with_tbl(tbl[["q"]] <- NULL)
|
||
|
|
||
|
## ----dollar-equivalent-to-subset-assign, dftbl = TRUE-------------------------
|
||
|
|
||
|
with_tbl(tbl$n <- 0)
|
||
|
|
||
|
with_tbl(tbl[["n"]] <- 0)
|
||
|
|
||
|
## ----dollar-equivalent-to-subset-assign-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df$"n" <- 0)
|
||
|
# with_tbl(tbl$"n" <- 0)
|
||
|
|
||
|
## ----dollar-equivalent-to-subset-assign-pmatch, dftbl = TRUE------------------
|
||
|
|
||
|
with_tbl(tbl$l <- 0)
|
||
|
|
||
|
with_tbl(tbl[["l"]] <- 0)
|
||
|
|
||
|
## ----bracket-assign-def, dftbl = TRUE-----------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1:2] <- list("x", 4:1))
|
||
|
|
||
|
with_tbl(tbl[c("li", "x", "c")] <- list("x", 4:1, NULL))
|
||
|
|
||
|
## ----bracket-assign-recycles, dftbl = TRUE------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1:2] <- list(1))
|
||
|
with_df(df[1:2] <- list(0, 0, 0))
|
||
|
with_tbl(tbl[1:2] <- list(0, 0, 0))
|
||
|
with_df(df[1:3] <- list(0, 0))
|
||
|
with_tbl(tbl[1:3] <- list(0, 0))
|
||
|
|
||
|
## ---- bracket-assign-multiple, dftbl = TRUE-----------------------------------
|
||
|
with_df(df[c(1, 1)] <- list(1, 2))
|
||
|
with_tbl(tbl[c(1, 1)] <- list(1, 2))
|
||
|
|
||
|
## ----bracket-assign-remove, dftbl = TRUE--------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1:2] <- list(NULL, 4:1))
|
||
|
|
||
|
## ----bracket-assign-na, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[NA] <- list("x"))
|
||
|
# with_tbl(tbl[NA] <- list("x"))
|
||
|
# with_df(df[NA_integer_] <- list("x"))
|
||
|
# with_tbl(tbl[NA_integer_] <- list("x"))
|
||
|
# with_df(df[NA_character_] <- list("x"))
|
||
|
# with_tbl(tbl[NA_character_] <- list("x"))
|
||
|
|
||
|
## ----bracket-assign-supports-type-change, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[1] <- df[2])
|
||
|
# with_tbl(tbl[1] <- tbl[2])
|
||
|
# with_df(df[2] <- df[3])
|
||
|
# with_tbl(tbl[2] <- tbl[3])
|
||
|
# with_df(df[3] <- df2[1])
|
||
|
# with_tbl(tbl[3] <- tbl2[1])
|
||
|
# with_df2(df2[1] <- df2[2])
|
||
|
# with_tbl2(tbl2[1] <- tbl2[2])
|
||
|
# with_df2(df2[2] <- df[1])
|
||
|
# with_tbl2(tbl2[2] <- tbl[1])
|
||
|
|
||
|
## ----bracket-assign-names, dftbl = TRUE---------------------------------------
|
||
|
|
||
|
with_tbl(tbl[c("x", "y")] <- tibble("x", x = 4:1))
|
||
|
|
||
|
with_tbl(tbl[3:4] <- list("x", x = 4:1))
|
||
|
with_df(df[4] <- list(4:1))
|
||
|
with_tbl(tbl[4] <- list(4:1))
|
||
|
with_df(df[5] <- list(4:1))
|
||
|
with_tbl(tbl[5] <- list(4:1))
|
||
|
|
||
|
## ----bracket-j-assign-logical-matrix, dftbl = TRUE----------------------------
|
||
|
with_df(df[is.na(df)] <- 4)
|
||
|
with_tbl(tbl[is.na(tbl)] <- 4)
|
||
|
with_df(df[is.na(df)] <- 1:2)
|
||
|
with_tbl(tbl[is.na(tbl)] <- 1:2)
|
||
|
with_df(df[matrix(c(rep(TRUE, 5), rep(FALSE, 7)), ncol = 3)] <- 4)
|
||
|
with_tbl(tbl[matrix(c(rep(TRUE, 5), rep(FALSE, 7)), ncol = 3)] <- 4)
|
||
|
|
||
|
## ----bracket-assign-array, dftbl = TRUE---------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1:2] <- matrix(8:1, ncol = 2))
|
||
|
with_df(df[1:3, 1:2] <- matrix(6:1, ncol = 2))
|
||
|
with_tbl(tbl[1:3, 1:2] <- matrix(6:1, ncol = 2))
|
||
|
|
||
|
with_tbl(tbl[1:2] <- array(4:1, dim = c(4, 1, 1)))
|
||
|
|
||
|
with_tbl(tbl[1:2] <- array(8:1, dim = c(4, 2, 1)))
|
||
|
with_df(df[1:2] <- array(8:1, dim = c(2, 1, 4)))
|
||
|
with_tbl(tbl[1:2] <- array(8:1, dim = c(2, 1, 4)))
|
||
|
with_df(df[1:2] <- array(8:1, dim = c(4, 1, 2)))
|
||
|
with_tbl(tbl[1:2] <- array(8:1, dim = c(4, 1, 2)))
|
||
|
|
||
|
## ----bracket-assign-wraps, dftbl = TRUE---------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1] <- 0)
|
||
|
|
||
|
with_tbl(tbl[1] <- list(0))
|
||
|
|
||
|
## ----bracket-assign-matrix, dftbl = TRUE--------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1] <- list(matrix(1:8, ncol = 2)))
|
||
|
|
||
|
|
||
|
|
||
|
with_tbl(tbl[1:2] <- list(matrix(1:8, ncol = 2)))
|
||
|
|
||
|
## ----bracket-assign-null, dftbl = TRUE----------------------------------------
|
||
|
|
||
|
with_tbl(tbl[1] <- NULL)
|
||
|
|
||
|
with_tbl(tbl[, 2:3] <- NULL)
|
||
|
with_df(df[1, 2:3] <- NULL)
|
||
|
with_tbl(tbl[1, 2:3] <- NULL)
|
||
|
|
||
|
## ----bracket-assign-non-vector, dftbl = TRUE----------------------------------
|
||
|
with_df(df[1] <- mean)
|
||
|
with_tbl(tbl[1] <- mean)
|
||
|
with_df(df[1] <- lm(mpg ~ wt, data = mtcars))
|
||
|
with_tbl(tbl[1] <- lm(mpg ~ wt, data = mtcars))
|
||
|
|
||
|
## ----bracket-i-assign, dftbl = TRUE-------------------------------------------
|
||
|
|
||
|
with_tbl(tbl[2:3, ] <- tbl[1, ])
|
||
|
|
||
|
with_tbl(tbl[c(FALSE, TRUE, TRUE, FALSE), ] <- tbl[1, ])
|
||
|
|
||
|
## ----bracket-i-assign-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[0:2, ] <- df[1, ])
|
||
|
# with_tbl(tbl[0:2, ] <- tbl[1, ])
|
||
|
# with_df(df[0, ] <- df[1, ])
|
||
|
# with_tbl(tbl[0, ] <- tbl[1, ])
|
||
|
# with_df(df[-2, ] <- df[1, ])
|
||
|
# with_tbl(tbl[-2, ] <- tbl[1, ])
|
||
|
# with_df(df[-1:2, ] <- df[1, ])
|
||
|
# with_tbl(tbl[-1:2, ] <- tbl[1, ])
|
||
|
# with_df(df[NA_integer_, ] <- df[1, ])
|
||
|
# with_tbl(tbl[NA_integer_, ] <- tbl[1, ])
|
||
|
# with_df2(df2[NA_integer_, ] <- df2[1, ])
|
||
|
# with_tbl2(tbl2[NA_integer_, ] <- tbl2[1, ])
|
||
|
# with_df(df[TRUE, ] <- df[1, ])
|
||
|
# with_tbl(tbl[TRUE, ] <- tbl[1, ])
|
||
|
# with_df(df[FALSE, ] <- df[1, ])
|
||
|
# with_tbl(tbl[FALSE, ] <- tbl[1, ])
|
||
|
# with_df(df[NA, ] <- df[1, ])
|
||
|
# with_tbl(tbl[NA, ] <- tbl[1, ])
|
||
|
|
||
|
## ----bracket-i-recycle-assign, dftbl = TRUE-----------------------------------
|
||
|
|
||
|
with_tbl(tbl[2:3, ] <- tbl[1, ])
|
||
|
|
||
|
with_tbl(tbl[2:3, ] <- list(tbl$n[1], tbl$c[1:2], tbl$li[1]))
|
||
|
with_df(df[2:4, ] <- df[1:2, ])
|
||
|
with_tbl(tbl[2:4, ] <- tbl[1:2, ])
|
||
|
|
||
|
## ----bracket-i-recycle-assign-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df2(df2[2:4, ] <- df2[1, ])
|
||
|
# with_tbl2(tbl2[2:4, ] <- tbl2[1, ])
|
||
|
# with_df2(df2[2:4, ] <- df2[2:3, ])
|
||
|
# with_tbl2(tbl2[2:4, ] <- tbl2[2:3, ])
|
||
|
|
||
|
## ----bracket-i-oob-num, dftbl = TRUE------------------------------------------
|
||
|
|
||
|
with_tbl(tbl[5, ] <- tbl[1, ])
|
||
|
|
||
|
with_tbl(tbl[5:7, ] <- tbl[1, ])
|
||
|
with_df(df[6, ] <- df[1, ])
|
||
|
with_tbl(tbl[6, ] <- tbl[1, ])
|
||
|
with_df(df[-5, ] <- df[1, ])
|
||
|
with_tbl(tbl[-5, ] <- tbl[1, ])
|
||
|
with_df(df[-(5:7), ] <- df[1, ])
|
||
|
with_tbl(tbl[-(5:7), ] <- tbl[1, ])
|
||
|
with_df(df[-6, ] <- df[1, ])
|
||
|
with_tbl(tbl[-6, ] <- tbl[1, ])
|
||
|
|
||
|
## ----bracket-i-character, dftbl = TRUE----------------------------------------
|
||
|
|
||
|
with_tbl(tbl[as.character(1:3), ] <- tbl[1, ])
|
||
|
|
||
|
## ----bracket-i-character-detail, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[as.character(-(1:3)), ] <- df[1, ])
|
||
|
# with_tbl(tbl[as.character(-(1:3)), ] <- tbl[1, ])
|
||
|
# with_df(df[as.character(3:5), ] <- df[1, ])
|
||
|
# with_tbl(tbl[as.character(3:5), ] <- tbl[1, ])
|
||
|
# with_df(df[as.character(-(3:5)), ] <- df[1, ])
|
||
|
# with_tbl(tbl[as.character(-(3:5)), ] <- tbl[1, ])
|
||
|
# with_df(df[NA_character_, ] <- df[1, ])
|
||
|
# with_tbl(tbl[NA_character_, ] <- tbl[1, ])
|
||
|
|
||
|
## ----bracket-i-data-type, dftbl = TRUE----------------------------------------
|
||
|
with_df(df[2:3, 1] <- df[1:2, 2])
|
||
|
with_tbl(tbl[2:3, 1] <- tbl[1:2, 2])
|
||
|
with_df(df[2:3, 2] <- df[1:2, 3])
|
||
|
with_tbl(tbl[2:3, 2] <- tbl[1:2, 3])
|
||
|
with_df(df[2:3, 3] <- df2[1:2, 1])
|
||
|
with_tbl(tbl[2:3, 3] <- tbl2[1:2, 1])
|
||
|
with_df2(df2[2:3, 1] <- df2[1:2, 2])
|
||
|
with_tbl2(tbl2[2:3, 1] <- tbl2[1:2, 2])
|
||
|
|
||
|
with_tbl2(tbl2[2:3, 2] <- tbl[1:2, 1])
|
||
|
|
||
|
## ----bracket-i-j-na-init, dftbl = TRUE----------------------------------------
|
||
|
|
||
|
with_tbl({tbl$x <- NA; tbl[2:3, "x"] <- 3:2})
|
||
|
with_df({df[2:3, 2:3] <- NA})
|
||
|
with_tbl({tbl[2:3, 2:3] <- NA})
|
||
|
|
||
|
## ----bracket-i-j-typed-na-init, dftbl = TRUE----------------------------------
|
||
|
|
||
|
with_tbl({tbl$x <- NA_integer_; tbl[2:3, "x"] <- 3:2})
|
||
|
|
||
|
## ----subassign-ij-new-column, dftbl = TRUE------------------------------------
|
||
|
with_df(df[2:3, "n"] <- 1)
|
||
|
with_tbl(tbl[2:3, "n"] <- 1)
|
||
|
|
||
|
with_tbl(tbl[2:3, "x"] <- 1)
|
||
|
with_df(df[2:3, "n"] <- NULL)
|
||
|
with_tbl(tbl[2:3, "n"] <- NULL)
|
||
|
|
||
|
## ----append-rows-only-all-columns, dftbl = TRUE-------------------------------
|
||
|
|
||
|
with_tbl(tbl[5, "n"] <- list(0L))
|
||
|
|
||
|
## ----double-bracket-i-j-equivalent-to-row-subset-then-j, dftbl = TRUE, include = eval_details, eval = eval_details----
|
||
|
# with_df(df[[1, 1]] <- 0)
|
||
|
# with_tbl(tbl[[1, 1]] <- 0)
|
||
|
# with_df(df[1, ][[1]] <- 0)
|
||
|
# with_tbl(tbl[1, ][[1]] <- 0)
|
||
|
# with_df(df[[1, 3]] <- list(NULL))
|
||
|
# with_tbl(tbl[[1, 3]] <- list(NULL))
|
||
|
# with_df(df[1, ][[3]] <- list(NULL))
|
||
|
# with_tbl(tbl[1, ][[3]] <- list(NULL))
|
||
|
# with_df2(df2[[1, 1]] <- df[1, ])
|
||
|
# with_tbl2(tbl2[[1, 1]] <- tbl[1, ])
|
||
|
# with_df2(df2[1, ][[1]] <- df[1, ])
|
||
|
# with_tbl2(tbl2[1, ][[1]] <- tbl[1, ])
|
||
|
# with_df2(df2[[1, 2]] <- t(1:4))
|
||
|
# with_tbl2(tbl2[[1, 2]] <- t(1:4))
|
||
|
# with_df2(df2[1, ][[2]] <- t(1:4))
|
||
|
# with_tbl2(tbl2[1, ][[2]] <- t(1:4))
|
||
|
# df[[1:2, 1]]
|
||
|
# tbl[[1:2, 1]]
|
||
|
# with_df(df[[1:2, 1]] <- 0)
|
||
|
# with_tbl(tbl[[1:2, 1]] <- 0)
|
||
|
|
||
|
## ----check, dftbl = TRUE, include = FALSE-------------------------------------
|
||
|
|
||
|
stopifnot(identical(tbl, new_tbl()))
|
||
|
|