This is useful for checking the value of a certain part of a version number, and is particularly useful when filtering datasets with a version number column. If a part is not present, NA will be returned.

version_part(x, which = getOption("version.parts"))

Arguments

x

Version numbers

which

The part to get - either as a string or a number

Value

An integer vector

Examples

nums <- version_number("1.0.0", "1.0.0.1", "1.0.0.2", "1.2.0", "2.0.0") # Specify the part to get using a string or a number version_part(nums, "dev")
#> [1] NA 1 2 NA NA
version_part(nums, 4)
#> [1] NA 1 2 NA NA
version_part(nums, "major")
#> [1] 1 1 1 1 2
# Filter datasets if (require(dplyr, quietly = TRUE)) { version_desc <- c("It's alive!", "Tweak to balancing", "Bug fix", "Can do flips", "Complete rework") # Get the numbers as a data.frame data <- tibble(versions = nums, version_desc = version_desc) data }
#> #> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’: #> #> filter, lag
#> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union
#> # A tibble: 5 x 2 #> versions version_desc #> <vrsn> <chr> #> 1 [3] It's alive! #> 2 [4] Tweak to balancing #> 3 [4] Bug fix #> 4 [3] Can do flips #> 5 [3] Complete rework
# Filter for dev versions if (require(dplyr, quietly = TRUE)) { data %>% filter(!is.na(version_part(versions, "dev"))) }
#> # A tibble: 2 x 2 #> versions version_desc #> <vrsn> <chr> #> 1 [4] Tweak to balancing #> 2 [4] Bug fix
# Filter for major version 1 if (require(dplyr, quietly = TRUE)) { data %>% filter(version_part(versions, "major") == 1) }
#> # A tibble: 4 x 2 #> versions version_desc #> <vrsn> <chr> #> 1 [3] It's alive! #> 2 [4] Tweak to balancing #> 3 [4] Bug fix #> 4 [3] Can do flips