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).
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)
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.
An argument specifying the nodal attribute to select or which levels to include.
Table of egos or of alters.
A character vector listing permitted data types for the output. See the Details section for the specification.
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.
A vector of length equal to the number of nodes, specifying the attribute vector.
An egor
object.
Starting set of levels to use; defaults to the sorted list of unique attributes.
see ergm::COLLAPSE_SMALLEST()
.
COLLAPSE_SMALLEST()
: A version of ergm::COLLAPSE_SMALLEST()
that can handle both network
and egodata
objects.
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.
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