99# ###############################################################################
1010
1111InitErgmTerm..subnets <- function (nw , arglist , ... ){
12- a <- check.ErgmTerm(nw , arglist ,
13- varnames = c(" attrname" ),
14- vartypes = c(" character" ),
15- defaultvalues = list (NULL ),
16- required = c(TRUE ))
12+ a <- check.ErgmTerm(nw , arglist )
1713
18- list (name = " _subnets" , coef.names = c(), iinputs = c(unlist(.block_vertexmap(nw , a $ attrname ))), dependence = FALSE )
14+ list (name = " _subnets" , coef.names = c(), iinputs = c(unlist(.block_vertexmap(nw ))), dependence = FALSE )
1915}
2016
2117
@@ -55,13 +51,6 @@ get_lminfo <- function(nattrs, lm=~1, subset=TRUE, contrasts=NULL, offset=NULL,
5551 list (xf = xf , xm = xm , subset = subset , offset = offset )
5652}
5753
58- assert_LHS_Networks <- function (nw , nid , term_trace = TRUE , call = if (term_trace ) NULL else rlang :: caller_env()){
59- if (anyNA(get_combining_attr(nw , nid ))){
60- msg <- paste0(" The LHS of the model is not a multi-network " , sQuote(" Networks()" ), " construct." )
61- if (term_trace ) ergm_Init_abort(msg , call = call )
62- else abort(msg , call = call )
63- }
64- }
6554
6655# ' @import purrr
6756# ' @import tibble
@@ -80,9 +69,10 @@ assert_LHS_Networks <- function(nw, nid, term_trace = TRUE, call = if(term_trace
8069# ' error. This can be avoided by pre-filtering with `subset`, which
8170# ' controls which networks are affected by the term.
8271# '
83- # ' The formula may also reference `.NetworkID` and `.NetworkName`. In
84- # ' particular, `~0+factor(.NetworkID)` will evaluate `formula` on each
85- # ' network individually.
72+ # ' The formula may also reference `.NetworkID` and `.NetworkName` (or
73+ # ' the corresponding IDs set by `.combiner`). In particular,
74+ # ' `~0+factor(.NetworkID)` will evaluate `formula` on each network
75+ # ' individually.
8676# '
8777# ' @note Care should be taken to avoid multicollinearity when using
8878# ' this operator. As with the [lm()] function, `lm` formulas have an
@@ -100,7 +90,7 @@ assert_LHS_Networks <- function(nw, nid, term_trace = TRUE, call = if(term_trace
10090# '
10191# ' @usage
10292# ' # binary: N(formula, lm=~1, subset=TRUE, weights=1, contrasts=NULL, offset=0, label=NULL,
103- # ' # .NetworkID=".NetworkID", .NetworkName=".NetworkName ")
93+ # ' # .combiner = "Networks ")
10494# ' @template ergmTerm-formula
10595# ' @param lm a one-sided [lm()]-style formula whose RHS specifies the network-level predictors for the terms in the [ergm()] formula `formula`.
10696# ' @param subset,contrasts see [lm()].
@@ -112,7 +102,10 @@ assert_LHS_Networks <- function(nw, nid, term_trace = TRUE, call = if(term_trace
112102# ' parameters to help identify the term (which may have similar
113103# ' predictors but, say, a different network subset) in the output
114104# ' *or* a function that wraps the names.
115- # ' @template ergmTerm-NetworkIDName
105+ # '
106+ # ' @param .combiner A character vector specifying which combiner, such
107+ # ' as [`Layer`] or [`Networks`] is expected to have created the LHS
108+ # ' network.
116109# '
117110# ' @section Offsets and fixing parameters:
118111# '
@@ -158,21 +151,21 @@ assert_LHS_Networks <- function(nw, nid, term_trace = TRUE, call = if(term_trace
158151# ' @concept operator
159152# ' @concept directed
160153# ' @concept undirected
161- InitErgmTerm.N <- function (nw , arglist , ... , N.compact_stats = TRUE , .NetworkID = " .NetworkID " , .NetworkName = " .NetworkName " ){
154+ InitErgmTerm.N <- function (nw , arglist , ... , N.compact_stats = TRUE , .combiner = " Networks " ){
162155 a <- check.ErgmTerm(nw , arglist ,
163- varnames = c(" formula" , " lm" , " subset" , " weights" , " contrasts" , " offset" , " label" , " .NetworkID " , " .NetworkName " ),
164- vartypes = c(" formula" , " formula" , " formula,logical,numeric,expression,call" , " formula,logical,numeric,expression,call" , " list" , " formula,logical,numeric,expression,call" , " character,function" , " character" , " character " ),
165- defaultvalues = list (NULL , ~ 1 , TRUE , 1 , NULL , NULL , NULL , .NetworkID , .NetworkName ),
166- required = c(TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE ))
156+ varnames = c(" formula" , " lm" , " subset" , " weights" , " contrasts" , " offset" , " label" , " .combiner " ),
157+ vartypes = c(" formula" , " formula" , " formula,logical,numeric,expression,call" , " formula,logical,numeric,expression,call" , " list" , " formula,logical,numeric,expression,call" , " character,function" , " character" ),
158+ defaultvalues = list (NULL , ~ 1 , TRUE , 1 , NULL , NULL , NULL , .combiner ),
159+ required = c(TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE ))
167160
168- assert_LHS_Networks (nw , a $ .NetworkID )
161+ assert_combined_network (nw , a $ .combiner )
169162
170- auxiliaries <- eval(substitute( ~ .subnets( .NetworkID ), list ( .NetworkID = a $ .NetworkID )), baseenv() )
163+ auxiliaries <- base_env( ~ .subnets )
171164
172- nwl <- subnetwork_templates(nw , a $ .NetworkID , a $ .NetworkName )
165+ nwl <- subnetwork_templates(nw )
173166 nwnames <- names(nwl )
174167 nn <- length(nwl )
175- nattrs <- as_tibble(nw , unit = " networks" , .NetworkID = a $ .NetworkID , .NetworkName = a $ .NetworkName , store.nid = TRUE )
168+ nattrs <- as_tibble(nw , unit = " networks" )
176169
177170 lmi <- get_lminfo(nattrs , lm = a $ lm , subset = a $ subset , contrasts = a $ contrasts , offset = a $ offset , weights = a $ weights )
178171
@@ -356,16 +349,16 @@ InitErgmTerm.N <- function(nw, arglist, ..., N.compact_stats=TRUE, .NetworkID=".
356349# ' @concept directed
357350# ' @concept undirected
358351# ' @noRd
359- InitErgmTerm.ByNetDStats <- function (nw , arglist , ... , .NetworkID = " .NetworkID " ){
352+ InitErgmTerm.ByNetDStats <- function (nw , arglist , ... ){
360353 a <- check.ErgmTerm(nw , arglist ,
361- varnames = c(" formula" , " subset" , " .NetworkID " ),
354+ varnames = c(" formula" , " subset" , " .combiner " ),
362355 vartypes = c(" formula" , " formula,logical,numeric,expression,call" , " character" ),
363- defaultvalues = list (NULL , TRUE , .NetworkID ),
356+ defaultvalues = list (NULL , TRUE , " Networks " ),
364357 required = c(TRUE , FALSE , FALSE ))
365358
366- assert_LHS_Networks (nw , a $ .NetworkID )
359+ assert_combined_network (nw , a $ .combiner )
367360
368- auxiliaries <- eval(substitute( ~ .subnets( .NetworkID ), list ( .NetworkID = a $ .NetworkID )), baseenv() )
361+ auxiliaries <- base_env( ~ .subnets )
369362 nattrs <- as_tibble(nw , unit = " networks" )
370363
371364 lmi <- get_lminfo(nattrs , subset = a $ subset )
0 commit comments