The libr package also contains a number of functions for managing data libraries. There are functions to add and remove data from a library, as well as copy or delete an entire library.
The example below illustrates some of these management functions. The example first creates a library and adds some data to it. The example then proceeds to copy it to another library and perform some manipulation of the data in the libraries. The example ends by looking at some of the metadata available for libraries:
library(libr)
# Create temp directory
<- tempdir()
tmp
# Create libraries
libname(s1, tmp)
# Add data to library and adjust names
lib_add(s1, state.name, state.area, state.region, state.abb,
name = c("name", "area", "region", "abb"))
# # library 's1': 4 items
# - attributes: rds not loaded
# - path: C:\Users\User\AppData\Local\Temp\RtmpqAMV6L
# - items:
# Name Extension Rows Cols Size LastModified
# 1 name rds 50 1 4.4 Kb 2020-11-29 17:00:28
# 2 area rds 50 1 1.4 Kb 2020-11-29 17:00:28
# 3 region rds 50 1 1.9 Kb 2020-11-29 17:00:28
# 4 abb rds 50 1 4.1 Kb 2020-11-29 17:00:28
# Copy library to backup location
lib_copy(s1, s2, file.path(tmp, "orig"))
# # library 's2': 4 items
# - attributes: rds not loaded
# - path: C:\Users\User\AppData\Local\Temp\RtmpqAMV6L/orig
# - items:
# Name Extension Rows Cols Size LastModified
# 1 name rds 50 1 4.4 Kb 2020-11-29 17:01:17
# 2 area rds 50 1 1.4 Kb 2020-11-29 17:01:17
# 3 region rds 50 1 1.9 Kb 2020-11-29 17:01:17
# 4 abb rds 50 1 4.1 Kb 2020-11-29 17:01:17
# Remove data from library 1
lib_remove(s1, name = c("name", "area", "region", "abb"))
# # library 's1': 0 items
# - attributes: rds not loaded
# - path: C:\Users\User\AppData\Local\Temp\RtmpqAMV6L
# NULL
# Load library 1 into memory
lib_load(s1)
<- data.frame(name = s2.name, abb = s2.abb,
s1.combined area = s2.area, region = s2.region,
stringsAsFactors = FALSE)
<- subset(s1.combined, region == "Northeast")
s1.east <- subset(s1.combined, region == "West")
s1.west <- subset(s1.combined, region == "North Central")
s1.north <- subset(s1.combined, region == "South")
s1.south
# Sync workspace with library list
lib_sync(s1)
# # library 's1': 5 items
# - attributes: rds loaded
# - path: C:\Users\User\AppData\Local\Temp\RtmpqAMV6L
# - items:
# Name Extension Rows Cols Size LastModified
# 1 combined NA 50 4 12.7 Kb <NA>
# 2 east NA 9 4 3.2 Kb <NA>
# 3 north NA 12 4 3.5 Kb <NA>
# 4 south NA 16 4 4 Kb <NA>
# 5 west NA 13 4 3.6 Kb <NA>
# Save library 1 to disk
lib_write(s1)
# # library 's1': 5 items
# - attributes: rds loaded
# - path: C:\Users\User\AppData\Local\Temp\RtmpqAMV6L
# - items:
# Name Extension Rows Cols Size LastModified
# 1 combined rds 50 4 13.4 Kb 2020-11-29 17:03:40
# 2 east rds 9 4 4 Kb 2020-11-29 17:03:40
# 3 north rds 12 4 4.3 Kb 2020-11-29 17:03:40
# 4 south rds 16 4 4.8 Kb 2020-11-29 17:03:40
# 5 west rds 13 4 4.4 Kb 2020-11-29 17:03:40
# View path
lib_path(s1)
# [1] "C:\\Users\\User\\AppData\\Local\\Temp\\RtmpqAMV6L"
# View size
lib_size(s1)
# [1] 7175
# View info
lib_info(s1)
# Name Extension Rows Cols Size LastModified
# 1 combined rds 50 4 13.4 Kb 2020-11-29 17:03:40
# 2 east rds 9 4 4 Kb 2020-11-29 17:03:40
# 3 north rds 12 4 4.3 Kb 2020-11-29 17:03:40
# 4 south rds 16 4 4.8 Kb 2020-11-29 17:03:40
# 5 west rds 13 4 4.4 Kb 2020-11-29 17:03:40
# Display dictionary
dictionary(s1)
# # A tibble: 20 x 10
# Name Column Class Label Description Format Width Justify Rows NAs
# <chr> <chr> <chr> <chr> <chr> <lgl> <int> <chr> <int> <int>
# 1 combined name character NA NA NA 14 NA 50 0
# 2 combined abb character NA NA NA 2 NA 50 0
# 3 combined area numeric NA NA NA NA NA 50 0
# 4 combined region factor NA NA NA NA NA 50 0
# 5 east name character NA NA NA 13 NA 9 0
# 6 east abb character NA NA NA 2 NA 9 0
# 7 east area numeric NA NA NA NA NA 9 0
# 8 east region factor NA NA NA NA NA 9 0
# 9 north name character NA NA NA 12 NA 12 0
# 10 north abb character NA NA NA 2 NA 12 0
# 11 north area numeric NA NA NA NA NA 12 0
# 12 north region factor NA NA NA NA NA 12 0
# 13 south name character NA NA NA 14 NA 16 0
# 14 south abb character NA NA NA 2 NA 16 0
# 15 south area numeric NA NA NA NA NA 16 0
# 16 south region factor NA NA NA NA NA 16 0
# 17 west name character NA NA NA 10 NA 13 0
# 18 west abb character NA NA NA 2 NA 13 0
# 19 west area numeric NA NA NA NA NA 13 0
# 20 west region factor NA NA NA NA NA 13 0
# Unload library 1
lib_unload(s1)
# Clean up
lib_delete(s1)
lib_delete(s2)
Next: Data Step Operations