Type: Package
Title: Reshape Data Tree
Version: 0.1.1
Maintainer: Jiena McLellan <jienagu90@gmail.com>
Description: A series of utility functions to help with reshaping hierarchy of data tree, and reform the structure of data tree.
BugReports: https://github.com/jienagu/forestry/issues
Suggests: knitr, rmarkdown
VignetteBuilder: knitr
License: MIT + file LICENSE
Imports: data.tree
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.0.2
NeedsCompilation: no
Packaged: 2023-11-20 19:08:40 UTC; jienamclellan
Author: Jiena McLellan ORCID iD [aut, cre], Michael Condouris ORCID iD [ctb], Sai Im ORCID iD [ctb]
Depends: R (≥ 3.5.0)
Repository: CRAN
Date/Publication: 2023-11-20 19:20:02 UTC

Add children node

Description

Add children node

Usage

add_child(main_tree, x, assign_node)

Arguments

main_tree

the parent tree to be appended with children node

x

xth child

assign_node

appended node as child

Value

reshaped tree with children assigned

Examples

data("test_df")
data("exercise_df")
test_node <- data.tree::as.Node(test_df)
test_exercise <- data.tree::as.Node(exercise_df)
add_child(main_tree = test_node, x = 4, assign_node = test_exercise )
print(test_node)

assign attributes to node; work with fix_items function

Description

assign attributes to node; work with fix_items function

Usage

assign_attr(node_from, node_to)

Arguments

node_from

assigned attributes from

node_to

assigned attributes to

Value

a node assigned attributes

Examples

cell_node1 <- data.tree::Node$new("cell1")
cell_node1$AddChild("A")
cell_node2 <- data.tree::Node$new("cell2")
cell_node2$AddChild("A")
cell_node2$Set(group = c(NA, "A1"))
print(assign_attr(node_from = cell_node1$A, node_to = cell_node2$A), "group")


Sort chidren nodes with certain order

Description

Sort chidren nodes with certain order

Usage

children_sort(input_node, input_order, mismatch_last = T)

Arguments

input_node

input node

input_order

children node order

mismatch_last

TRUE: mismatched children nodes are at the bottom; FALSE: mismatched nodes are at the top

Value

tree with children nodes sorted with certian order

Examples

data(test_df)
test_node <- data.tree::as.Node(test_df)
sorted_node <- children_sort(
  input_node = test_node,
  input_order = c("groupB", "groupA"),
  mismatch_last = TRUE)
print(sorted_node)

create a tree with assigned name, children and fields

Description

create a tree with assigned name, children and fields

Usage

create_nodes(tree_name, add_children_count, ...)

Arguments

tree_name

assign name of tree

add_children_count

assign number of chidren to this tree

...

parameters that will be passed as fields of this tree

Value

a tree with assigned name, children and fields

Examples

create_nodes(tree_name = "tree1", add_children_count = 3, class = c("A", "B", "C"))

create tree appended with each element of input list as a child

Description

create tree appended with each element of input list as a child

Usage

create_tree(input_list, node_name)

Arguments

input_list

input list to be made for a tree

node_name

name of the tree

Value

a tree with each item of the list as each child

Examples

data("test_df")
test_node <- data.tree::as.Node(test_df)
new_shape <- create_tree(test_node$children,"new_tree")
print(new_shape, "hc")


cumulative calculation

Description

cumulative calculation

Usage

cumsum_across_level(input_node, attri_name, level_num)

Arguments

input_node

tree

attri_name

name of this cummulative count field

level_num

calculate cummulative value cross the level

Value

tree with cummulative count

Examples

data(exercise_df)
exercise_node <- data.tree::as.Node(exercise_df)
test <- cumsum_across_level(input_node = exercise_node,
                            attri_name = "exercise_time",
                            level_num = 3)
print(test, "cumsum_number", "exercise_time", "level")

calculate cumsum for input level

Description

calculate cumsum for input level

Usage

cumsum_by_level(input_tree, level_num, attri_name)

Arguments

input_tree

input tree

level_num

level of tree for cumsum

attri_name

name of this cummulative count field

Value

tree with calculated cumsum for input level

Examples

data(exercise_df)
exercise_node <- data.tree::as.Node(exercise_df)
cumsum_by_level(exercise_node, 3, "exercise_time")


Anonymized sample exercise data

Description

Anonymized sample exercise data

Usage

data(exercise_df)

Format

a data frame ready to convert to a tree

Author(s)

Jiena Gu McLellan, 2020-05-26

Examples

data(exercise_df)

fill missing value of a field across a level with 0

Description

fill missing value of a field across a level with 0

Usage

fill_NA_level(input_node, field_name, by_level, fill_with = 0)

Arguments

input_node

input node

field_name

field for this operation

by_level

across this level

fill_with

fill missing value with this value

Value

node with NA filled for the input field at input level

Examples

data(exercise_df)
exercise_node <- data.tree::as.Node(exercise_df)
result <- fill_NA_level(input_node = exercise_node,
                        field_name = "exercise_time",
                        by_level = 2,
                        fill_with = "quarterly")
print(result, "exercise_time")


assign certain children nodes and fill NA for empty fields

Description

assign certain children nodes and fill NA for empty fields

Usage

fix_items(fix_vector, input_node)

Arguments

fix_vector

children node names to be assigned

input_node

the node to be exapnded with children's names

Value

a node expanded with certain children nodes

Examples

cell_node2 <- data.tree::Node$new("cell2")
cell_node2$AddChild("B")
cell_node2$AddChild("C")
cell_node2$Set(class = c(NA, "B1", "C1"))
print(cell_node2, "class")
cell_fixed_items <- fix_items(fix_vector = c("A", "B", "C", "D"), input_node = cell_node2)
print(cell_fixed_items, "class")

numericalize children numeric name to convert JSON object to JSON array

Description

numericalize children numeric name to convert JSON object to JSON array

Usage

fixnames(x)

Arguments

x

input

Value

unname numeric names list

Examples

fixnames(list("1" = 1, "2" = 2))


numericalize children numeric name to convert JSON object to JSON array

Description

numericalize children numeric name to convert JSON object to JSON array

Usage

pre_get_array(x)

Arguments

x

input list

Value

unname numeric names list which is prepared to convert to JSON array

Examples

demo_list <- list("1" = 1, "2" = 2, list("1" = 1, "2" = 2))
pre_get_array(demo_list)


Anonymized sample data

Description

Anonymized sample data

Usage

data(test_df)

Format

a data frame ready to convert to a tree

Author(s)

Jiena Gu McLellan, 2020-05-26

Examples

data(test_df)