## ----knitr-setup, include = FALSE----------------------------------------------------------------- require(container) knitr::opts_chunk$set( comment = "#", error = FALSE, tidy = FALSE, cache = FALSE, collapse = TRUE ) old <- options(width = 100L) ## ------------------------------------------------------------------------------------------------- co <- container() co[["x"]] <- 1 co <- c(co, 2) co ## ------------------------------------------------------------------------------------------------- co = add(co, x = 3) # same as c(co, container(x = 3)) co ## ------------------------------------------------------------------------------------------------- co[["x"]] <- 0 co[[2]] <- 12 co ## ----error = TRUE--------------------------------------------------------------------------------- try({ co[[4]] <- 4 }) ## ------------------------------------------------------------------------------------------------- co[["y"]] <- 4 co ## ------------------------------------------------------------------------------------------------- replace_at(co, x = 10, y = 13) # name = value pairs replace_at(co, c("x", "y"), c(10, 13)) # names followed by values replace_at(co, c(1, 4), c(10, 13)) # positions followed by values replace_at(co, list(1, "y"), c(10, 13)) # mixed names/positions followed by values ## ----error = TRUE--------------------------------------------------------------------------------- try({ replace_at(co, z = 10) replace_at(co, "z", 10) replace_at(co, 5, 10) }) ## ----error = TRUE--------------------------------------------------------------------------------- try({ co = replace_at(co, z = 10, .add = TRUE) co = replace_at(co, 7, 10, .add = TRUE) co }) ## ------------------------------------------------------------------------------------------------- co = replace(co, 12, "foo") co co = replace(co, 4, 1:4) co ## ------------------------------------------------------------------------------------------------- co[[{1:4}]] <- 1:2 co ## ------------------------------------------------------------------------------------------------- co[[1]] co[["x"]] co[3:5] co[c("x", "y", "z")] ## ------------------------------------------------------------------------------------------------- at2(co, 1) at2(co, "x") at(co, 3:5) at(co, c("x", "y", "z")) ## ------------------------------------------------------------------------------------------------- indices = list("x", 4, "z") at(co, indices) ## ----error = TRUE--------------------------------------------------------------------------------- try({ at2(co, 10) at2(co, "a") at(co, 3:6) at(co, c("x", "a")) }) ## ------------------------------------------------------------------------------------------------- l = list() l[["a"]] l[2:3] ## ------------------------------------------------------------------------------------------------- peek_at2(co, "a") peek_at(co, 10, 11) peek_at(co, 5:10) ## ------------------------------------------------------------------------------------------------- peek_at2(co, "a", default = -1) peek_at(co, "z", "a", .default = -1) peek_at(co, 4:8, .default = NA) ## ------------------------------------------------------------------------------------------------- l = list(a = 1) l l[["a"]] <- NULL l ## ------------------------------------------------------------------------------------------------- co[["x"]] <- NULL co ## ------------------------------------------------------------------------------------------------- delete_at(co, 1, "y", "z") delete(co, NULL, 1:2, 10) # same but remove by value ## ----error = TRUE--------------------------------------------------------------------------------- try({ delete_at(co, "a") delete_at(co, 10) delete(co, 1:3) }) ## ------------------------------------------------------------------------------------------------- discard_at(co, 1, "a") discard_at(co, 1:100) discard(co, NULL, 1:2, 1:3, 1:4) ## ------------------------------------------------------------------------------------------------- c1 = container(1, b = 2) c2 = container( b = 0, c = 3) update(c1, c2) update(c2, c1) ## ------------------------------------------------------------------------------------------------- l1 = list(1, b = 2) l2 = list( b = 0, c = 3) update(l1, l2) update(l2, l1) ## ----include = FALSE---------------------------------------------------------- options(old)