container
provides an enhanced version of base R’s
list
with a carefully designed set of extract, replace, and
remove operations that make it easier and safer to work with list-like
data structures.
container
?NULL
)In addition, this package provides specialized data structures
Deque, Set and Dict and a special
class dict.table
, designed to extend data.table by
container operations to safely Manage
data columns with dict.table.
# Install release version from CRAN
install.packages("container")
# Install development version from GitHub
::install_github("rpahl/container") devtools
library(container)
<- container(colors = c("Red", "Green"), numbers = c(1, 2, 3), data = cars)
co
co# [colors = ("Red" "Green"), numbers = (1 2 3), data = <<data.frame(50x2)>>]
Safe extract
at(co, "colours") # oops
# Error: index 'colours' not found
at(co, "colors")
# [colors = ("Red" "Green")]
Safe remove
<- delete_at(co, "colours") # oops
co # Error: names(s) not found: 'colours'
<- delete_at(co, "colors")
co
co# [numbers = (1 2 3), data = <<data.frame(50x2)>>]
Flexible peek
at(co, "colors") # oops
# Error: index 'colors' not found
peek_at(co, "colors")
# []
peek_at(co, "colors", .default = c("black", "white"))
# [colors = ("black" "white")]
Safe replace
<- replace_at(co, num = 1:10) # oops
co # Error: names(s) not found: 'num'
<- replace_at(co, numbers = 1:10)
co
co# [numbers = (1L 2L 3L 4L ...), data = <<data.frame(50x2)>>]