Learn R Programming

ergm.ego (version 1.1.0)

nodal_attributes-API: Helper functions for specifying nodal attribute levels

Description

These functions are meant to be used in EgoStat and other implementations to provide the user with a way to extract nodal attributes and select their levels in standardized and flexible ways. They are intended to parallel ergm::nodal_attributes-API of ergm package.

ergm.ego_get_vattr extracts and processes the specified nodal attribute vector. It is strongly recommended that check.ErgmTerm()'s corresponding vartype="function,formula,character" (using the ERGM_VATTR_SPEC constant).

ergm.ego_attr_levels filters the levels of the attribute. It is strongly recommended that check.ErgmTerm()'s corresponding vartype="function,formula,character,numeric,logical,AsIs,NULL" (using the ERGM_LEVELS_SPEC constant).

Usage

ergm.ego_get_vattr(
  object,
  df,
  accept = "character",
  multiple = if (accept == "character") "paste" else "stop",
  ...
)

# S3 method for character ergm.ego_get_vattr( object, df, accept = "character", multiple = if (accept == "character") "paste" else "stop", ... )

# S3 method for `function` ergm.ego_get_vattr( object, df, accept = "character", multiple = if (accept == "character") "paste" else "stop", ... )

# S3 method for formula ergm.ego_get_vattr( object, df, accept = "character", multiple = if (accept == "character") "paste" else "stop", ... )

ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for numeric ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for logical ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for AsIs ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for character ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for `NULL` ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for matrix ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for `function` ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

# S3 method for formula ergm.ego_attr_levels(object, attr, egor, levels = sort(unique(attr)), ...)

COLLAPSE_SMALLEST(object, n, into)

Value

ergm.ego_get_vattr returns a vector of length equal to the number of nodes giving the selected attribute function. It may also have an attribute "name", which controls the suggested name of the attribute combination.

ergm.ego_attr_levels returns a vector of levels to use and their order.

Arguments

object

An argument specifying the nodal attribute to select or which levels to include.

df

Table of egos or of alters.

accept

A character vector listing permitted data types for the output. See the Details section for the specification.

multiple

Handling of multiple attributes or matrix or data frame output. See the Details section for the specification.

...

Additional argument to the functions of network or to the formula's environment.

attr

A vector of length equal to the number of nodes, specifying the attribute vector.

egor

An egor object.

levels

Starting set of levels to use; defaults to the sorted list of unique attributes.

n, into

see ergm::COLLAPSE_SMALLEST().

Functions

  • COLLAPSE_SMALLEST(): A version of ergm::COLLAPSE_SMALLEST() that can handle both network and egodata objects.

Details

The accept argument is meant to allow the user to quickly check whether the output is of an acceptable class or mode. Typically, if a term accepts a character (i.e., categorical) attribute, it will also accept a numeric one, treating each number as a category label. For this reason, the following outputs are defined:

"character"

Accept any mode or class (since it can beconverted to character).

"numeric"

Accept real, integer, or logical.

"logical"

Accept logical.

"integer"

Accept integer or logical.

"natural"

Accept a strictly positive integer.

"0natural"

Accept a nonnegative integer or logical.

"nonnegative"

Accept a nonnegative number or logical.

"positive"

Accept a strictly positive number or logical.

"paste"

Paste together with dot as the separator.

"stop"

Fail with an error message.

"matrix"

Construct and/or return a matrix whose rows correspond to vertices.

Examples

Run this code
data(florentine)
flomego <- as.egor(flomarriage)
ergm.ego_get_vattr("priorates", flomego)
ergm.ego_get_vattr(~priorates, flomego)
ergm.ego_get_vattr(c("wealth","priorates"), flomego)
ergm.ego_get_vattr(~priorates>30, flomego)
(a <- ergm.ego_get_vattr(~cut(priorates,c(-Inf,0,20,40,60,Inf),label=FALSE)-1, flomego))
ergm.ego_attr_levels(NULL, a, flomego)
ergm.ego_attr_levels(-1, a, flomego)
ergm.ego_attr_levels(1:2, a, flomego)
ergm.ego_attr_levels(I(1:2), a, flomego)

Run the code above in your browser using DataLab