Skip to contents

Get any user-defined patterns from each symbol of character vector

Usage

chars_structure_general(
  input_vector,
  split = "",
  patterns_and_replacements,
  unique = TRUE,
  named_output = TRUE
)

Arguments

input_vector

Character. Vector to process

split

Character 1L. Symbol separator

patterns_and_replacements

Character. Named character vector of patterns (names) and replacements (values)

unique

Logical 1L. If TRUE, the result is reduced to unique values

named_output

Logical 1L. If TRUE, output vector is named after corresponding input values.

Value

A character vector describing the generalized structure of each element of input_vector. If named_output is TRUE, the vector is named after the corresponding input values. If unique is TRUE, only structures for unique input values are returned; otherwise one structure per element of input_vector.

Examples


input <- c("ABC123", "DE4F56", "789GHI", "ABC123")

# Default values of unique and named_output:
chars_structure_general(input_vector = input, split = "", 
                        patterns_and_replacements = c("[:alpha:]" = "[letter]", 
                                                      "[:digit:]" = "[number]"), 
                        unique = TRUE, named_output = TRUE)
#>                                       ABC123 
#>                       "3[letter], 3[number]" 
#>                                       DE4F56 
#> "2[letter], 1[number], 1[letter], 2[number]" 
#>                                       789GHI 
#>                       "3[number], 3[letter]" 

# unique is set to default value TRUE and named_output is set to FALSE:
chars_structure_general(input_vector = input, split = "", 
                        patterns_and_replacements = c("[:alpha:]" = "[letter]", 
                                                      "[:digit:]" = "[number]"), 
                        unique = TRUE, named_output = FALSE)
#> [1] "3[letter], 3[number]"                      
#> [2] "2[letter], 1[number], 1[letter], 2[number]"
#> [3] "3[number], 3[letter]"                      

# unique is set to FALSE and named_output to FALSE:
chars_structure_general(input_vector = input, split = "", 
                        patterns_and_replacements = c("[:alpha:]" = "[letter]", 
                                                      "[:digit:]" = "[number]"), 
                        unique = FALSE, named_output = FALSE)
#> [1] "3[letter], 3[number]"                      
#> [2] "2[letter], 1[number], 1[letter], 2[number]"
#> [3] "3[number], 3[letter]"                      
#> [4] "3[letter], 3[number]"                      

# unique is set to FALSE and named_output to defalut value TRUE:
chars_structure_general(input_vector = input, split = "", 
                        patterns_and_replacements = c("[:alpha:]" = "[letter]", 
                                                      "[:digit:]" = "[number]"), 
                        unique = FALSE, named_output = TRUE)
#>                                       ABC123 
#>                       "3[letter], 3[number]" 
#>                                       DE4F56 
#> "2[letter], 1[number], 1[letter], 2[number]" 
#>                                       789GHI 
#>                       "3[number], 3[letter]" 
#>                                       ABC123 
#>                       "3[letter], 3[number]"