For-ergmTerm | R Documentation |
for
operator for termsThis operator evaluates the formula given to it, substituting the specified loop counter variable with each element in a sequence.
# binary: For(...)
... |
in any order,
|
Placeholders are specified in the style of
foreach::foreach()
, as VAR = SEQ
. VAR
can be any valid R variable name, and SEQ can be a vector,
a list, a function of one argument, or a one-sided formula. The
vector or list will be used directly, whereas a function will be
called with the network as its argument to produce the list, and
the formula will be used analogously to purrr::as_mapper()
, its
RHS evaluated in an environment in which the network itself will
be accessible as .
or .nw
.
If more than one named expression is given, they will be expanded
as one would expect in a nested for
loop: earlier expressions
will form the outer loops and later expressions the inner loops.
ergmTerm
for index of model terms currently visible to the package.
#
# The following are equivalent ways to compute differential
# homophily.
#
data(sampson)
(groups <- sort(unique(samplike%v%"group"))) # Sorted list of groups.
# The "normal" way:
summary(samplike ~ nodematch("group", diff=TRUE))
# One element at a time, specifying a list:
summary(samplike ~ For(~nodematch("group", levels=., diff=TRUE),
. = groups))
# One element at a time, specifying a function that returns a list:
summary(samplike ~ For(~nodematch("group", levels=., diff=TRUE),
. = function(nw) sort(unique(nw%v%"group"))))
# One element at a time, specifying a formula whose RHS expression
# returns a list:
summary(samplike ~ For(~nodematch("group", levels=., diff=TRUE),
. = ~sort(unique(.%v%"group"))))
#
# Multiple iterators are possible, in any order. Here, absdiff() is
# being computed for each combination of attribute and power.
#
data(florentine)
# The "normal" way:
summary(flomarriage ~ absdiff("wealth", pow=1) + absdiff("priorates", pow=1) +
absdiff("wealth", pow=2) + absdiff("priorates", pow=2) +
absdiff("wealth", pow=3) + absdiff("priorates", pow=3))
# With a loop; note that the attribute (a) is being iterated within
# power (.):
summary(flomarriage ~ For(. = 1:3, a = c("wealth", "priorates"), ~absdiff(a, pow=.)))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.