R/prepare_continuous_force.R
prepare_continuous_force.Rd
This function prepares a continuous network for SETSe projection. The function works for networks with a single feature or high-dimensional features. The network takes in an igraph object and produces an undirected igraph object that can be used with the embedding functions.
prepare_continuous_force( g, node_names, k = NULL, force_var, sum_to_one = TRUE, distance = 1 )
g | an igraph object |
---|---|
node_names | a character string. A vertex attribute which contains the node names. |
k | The spring constant. This value is either a numeric value giving the spring constant for all edges or NULL. If NULL is used the k value will not be added to the network. This is useful k is made through some other process. |
force_var | A character vector. This is the vector of node attributes to be used as the force variables. All the attributes must be a numeric or integer value, and cannot have NA's. On a single variable embedding this is usually "force" |
sum_to_one | Logical. whether the total positive force sums to 1, if FALSE the total is the sum of the positive cases |
distance | a positive numeric value. The default is 1 |
A network with the correct edge and node attributes for the embeddings process.
The function subtracts the mean from all the values so that the system is balanced. If sum_to_one is true then everything is divided by the absolute sum over two
The function adds the node attribute 'force' and the edge attribute 'k' unless k=NULL. The purpose of the function is to easily be able to project continuous networks using SETSe.
The function creates several variables
force: a vertex attribute representing the force produced by each node. The sum of this variable will be 0
k: The spring constant representing the stiffness of the spring.
edge_name: the name of the edges. it takes the form "from_to" where "from" is the origin node and "to" is the destination node using the as_data_frame function from igraph
Other prepare_setse:
prepare_categorical_force()
,
prepare_edges()
embeddings <- biconnected_network %>% #prepare the network for a binary embedding #k is already present in the data so is left null in the preparation function prepare_edges(k = NULL, distance = 1) %>% prepare_continuous_force(., node_names = "name", force_var = "force") %>% #embed the network using auto_setse #in the biconnected_network dataset the edge weights are used directly as k values setse_auto(k = "weight")