@@ -96,9 +96,9 @@ function sem_summary(
9696
9797 for var in partable. latent_vars
9898 indicator_indices = findall (
99- (partable . columns[ :from ] .== var) .&
100- (partable . columns[ :relation ] . == :→ ) .&
101- ( partable. columns[ :to ] .∈ [partable . observed_vars]) ,
99+ r ->
100+ (r . from == var) && (r . relation == :→ ) && (r . to ∈ partable . observed_vars),
101+ partable,
102102 )
103103
104104 printstyled (var; color = secondary_color)
@@ -116,20 +116,13 @@ function sem_summary(
116116 printstyled (" Directed Effects: \n " ; color = color)
117117
118118 regression_indices = findall (
119- (partable. columns[:relation ] .== :→ ) .& (
120- (
121- (partable. columns[:to ] .∈ [partable. observed_vars]) .&
122- (partable. columns[:from ] .∈ [partable. observed_vars])
123- ) .|
124- (
125- (partable. columns[:to ] .∈ [partable. latent_vars]) .&
126- (partable. columns[:from ] .∈ [partable. observed_vars])
127- ) .|
128- (
129- (partable. columns[:to ] .∈ [partable. latent_vars]) .&
130- (partable. columns[:from ] .∈ [partable. latent_vars])
131- )
132- ),
119+ r ->
120+ (r. relation == :→ ) && (
121+ ((r. to ∈ partable. observed_vars) && (r. from ∈ partable. observed_vars)) ||
122+ ((r. to ∈ partable. latent_vars) && (r. from ∈ partable. observed_vars)) ||
123+ ((r. to ∈ partable. latent_vars) && (r. from ∈ partable. latent_vars))
124+ ),
125+ partable,
133126 )
134127
135128 sorted_columns = [:from , :relation , :to , :estimate , :param , :value_fixed , :start ]
@@ -153,77 +146,68 @@ function sem_summary(
153146
154147 printstyled (" Variances: \n " ; color = color)
155148
156- variance_indices = findall (
157- (partable. columns[:relation ] .== :↔ ) .&
158- (partable. columns[:to ] .== partable. columns[:from ]),
159- )
149+ var_indices = findall (r -> r. relation == :↔ && r. to == r. from, partable)
160150
161151 sorted_columns = [:from , :relation , :to , :estimate , :param , :value_fixed , :start ]
162- variance_columns = sort_partially (sorted_columns, columns)
152+ var_columns = sort_partially (sorted_columns, columns)
163153
164- variance_array = reduce (
154+ var_array = reduce (
165155 hcat,
166- check_round (partable. columns[c][variance_indices ]; digits = digits) for
156+ check_round (partable. columns[c][var_indices ]; digits = digits) for
167157 c in variance_columns
168158 )
169- variance_columns [2 ] = Symbol (" " )
159+ var_columns [2 ] = Symbol (" " )
170160
171161 print (" \n " )
172162 pretty_table (
173- variance_array ;
174- header = variance_columns ,
163+ var_array ;
164+ header = var_columns ,
175165 tf = PrettyTables. tf_borderless,
176166 alignment = :l ,
177167 )
178168 print (" \n " )
179169
180170 printstyled (" Covariances: \n " ; color = color)
181171
182- variance_indices = findall (
183- (partable. columns[:relation ] .== :↔ ) .&
184- (partable. columns[:to ] .!= partable. columns[:from ]),
185- )
172+ covar_indices = findall (r -> r. relation == :↔ && r. to != r. from, partable)
186173
187- sorted_columns = [:from , :relation , :to , :estimate , :param , :value_fixed , :start ]
188- variance_columns = sort_partially (sorted_columns, columns)
174+ covar_columns = sort_partially (sorted_columns, columns)
189175
190- variance_array = reduce (
176+ covar_array = reduce (
191177 hcat,
192- check_round (partable. columns[c][variance_indices ]; digits = digits) for
193- c in variance_columns
178+ check_round (partable. columns[c][covar_indices ]; digits = digits) for
179+ c in covar_columns
194180 )
195- variance_columns [2 ] = Symbol (" " )
181+ covar_columns [2 ] = Symbol (" " )
196182
197183 print (" \n " )
198184 pretty_table (
199- variance_array ;
200- header = variance_columns ,
185+ covar_array ;
186+ header = covar_columns ,
201187 tf = PrettyTables. tf_borderless,
202188 alignment = :l ,
203189 )
204190 print (" \n " )
205191
206- mean_indices = findall (
207- (partable. columns[:relation ] .== :→ ) .& (partable. columns[:from ] .== Symbol (" 1" )),
208- )
192+ mean_indices = findall (r -> (r. relation == :→ ) && (r. from == Symbol (" 1" )), partable)
209193
210194 if length (mean_indices) > 0
211195 printstyled (" Means: \n " ; color = color)
212196
213197 sorted_columns = [:from , :relation , :to , :estimate , :param , :value_fixed , :start ]
214- variance_columns = sort_partially (sorted_columns, columns)
198+ mean_columns = sort_partially (sorted_columns, columns)
215199
216- variance_array = reduce (
200+ mean_array = reduce (
217201 hcat,
218202 check_round (partable. columns[c][mean_indices]; digits = digits) for
219- c in variance_columns
203+ c in mean_columns
220204 )
221- variance_columns [2 ] = Symbol (" " )
205+ mean_columns [2 ] = Symbol (" " )
222206
223207 print (" \n " )
224208 pretty_table (
225- variance_array ;
226- header = variance_columns ,
209+ mean_array ;
210+ header = mean_columns ,
227211 tf = PrettyTables. tf_borderless,
228212 alignment = :l ,
229213 )
0 commit comments