quanteda (version 1.5.2)

flatten_dictionary: Flatten a hierarchical dictionary into a list of character vectors

Description

Converts a hierarchical dictionary (a named list of named lists, ending in character vectors at the lowest level) into a flat list of character vectors. Works like unlist(dictionary, recursive=TRUE) except that the recursion does not go to the bottom level. Called by dfm.

Usage

flatten_dictionary(
  dict,
  levels = 1:100,
  level = 1,
  key_parent = "",
  dict_flat = list()
)

Arguments

dict

internal argument to pass flattened dictionary

levels

integer vector indicating levels in the dictionary

level

internal argument to pass current levels

tree

list to be flattened

key_tree

internal argument to pass for parent keys

Value

A dictionary flattened to variable levels

Examples

Run this code
# NOT RUN {
dict1 <-
    dictionary(list(populism=c("elit*", "consensus*", "undemocratic*", "referend*",
                               "corrupt*", "propagand", "politici*", "*deceit*",
                               "*deceiv*", "*betray*", "shame*", "scandal*", "truth*",
                               "dishonest*", "establishm*", "ruling*")))
flatten_dictionary(dict1)

dict2 <- list(level1a = list(level1a1 = c("l1a11", "l1a12"),
                            level1a2 = c("l1a21", "l1a22")),
             level1b = list(level1b1 = c("l1b11", "l1b12"),
                             level1b2 = c("l1b21", "l1b22", "l1b23")),
              level1c = list(level1c1a = list(level1c1a1 = c("lowest1", "lowest2")),
                             level1c1b = list(level1c1b1 = c("lowestalone"))))
flatten_dictionary(dict2)
flatten_dictionary(dict2, 2)
flatten_dictionary(dict2, 1:2)
# }

Run the code above in your browser using DataCamp Workspace