Skip to content

Commit 3769469

Browse files
committed
sem_summary(): cleanup filters
1 parent b6ba99d commit 3769469

File tree

1 file changed

+32
-48
lines changed

1 file changed

+32
-48
lines changed

src/frontend/fit/summary.jl

Lines changed: 32 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)