calc_tension_strain_hd: Calculate line tension and strain from the topology and node...

View source: R/calc_tension_strain_hd.R

calc_tension_strain_hdR Documentation

Calculate line tension and strain from the topology and node embeddings for high dimensional feature networks

Description

This function calculates the line tension and strain characteristics for the edges in a graph. It is called by default by all the embedding functions (SETSe_*) but is included here for completeness.

Usage

calc_tension_strain_hd(
  g,
  height_embeddings_df,
  distance = "distance",
  edge_name = "edge_name",
  k = "k"
)

Arguments

g

An igraph object of the network.

height_embeddings_df

A data frame. This is the results of Create_stabilised_blocks or Find_network_balance

distance

A character string. The name of the edge attribute that contains the distance between two nodes. The default is "distance"

edge_name

A character string. The name of the edge attribute that contains the edge name. The default is "edge_name".

k

A character string. The name of the edge attribute that contains the spring coefficient

Details

Whilst the node embeddings dataframe contains the elevation of the setse algorithm this function produces a data frame that contains the Tension and Strain. The dataframe that is returned contains a substantial amount of line information so reducing the number of variables may be necessary if the data frame will be merged with previously generated data as there could be multiple columns of the same value. This function is called by default at the end of all setse functions

Value

The function returns a data frame of 7 columns. These columns are the edge name, the change in elevation, The final distance between the two nodes (the hypotenuse of the original distance and the vertical distance), the spring constant k, the edge tension, the edge strain, and the mean elevation.

Examples


g <- biconnected_network %>%
 prepare_edges(., k = 1000) %>%
 #prepare the continuous features as normal
 prepare_continuous_force(., node_names = "name", force_var = "force") %>%
 #prepare the categorical features as normal
 prepare_categorical_force(., node_names = "name", force_var = "group")
  
 #embed them using the high dimensional function
 two_dimensional_embeddings <- setse_auto_hd(g, force = c("group_A", "force"), k = "weight")
  
 edge_embeddings_df <- calc_tension_strain_hd(g, two_dimensional_embeddings$node_embeddings)
 all.equal(two_dimensional_embeddings$edge_embeddings, edge_embeddings_df) 
 
 

JonnoB/rSETSe documentation built on July 25, 2022, 4:56 p.m.