Skip to content

Commit 60d6945

Browse files
authored
Merge pull request #165 from jmboehm/fix-single-rhs-fixedeffectsmodels
Switch to broadcasting to fix no length issue on rhs in formula
2 parents b24f80a + fc15c79 commit 60d6945

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "RegressionTables"
22
uuid = "d519eb52-b820-54da-95a6-98e1306fdade"
33
authors = ["Johannes Boehm <[email protected]>"]
4-
version = "0.7.6"
4+
version = "0.7.7"
55

66
[deps]
77
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"

ext/RegressionTablesFixedEffectModelsExt.jl

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,12 @@ function RegressionTables.other_stats(rr::FixedEffectModel, s::Symbol)
2828
if !isdefined(rr, :formula)
2929
return Dict{Symbol, Vector{Pair}}()
3030
end
31-
rhs_itr = if isa(rr.formula.rhs, StatsModels.Term)
32-
[rr.formula.rhs]
33-
else
34-
rr.formula.rhs
35-
end
36-
37-
for t in rhs_itr
38-
if has_fe(t)
39-
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(t)))
31+
fe_set = has_fe.(rr.formula.rhs)
32+
for (i, v) in enumerate(fe_set)
33+
if v && !isa(fe_set, Bool)
34+
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(rr.formula.rhs[i])))
35+
elseif v
36+
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(rr.formula.rhs)))
4037
end
4138
end
4239
if length(out) > 0

ext/RegressionTablesGLFixedEffectModelsExt.jl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@ function RegressionTables.other_stats(rr::GLFixedEffectModel, s::Symbol)
1919
if !isdefined(rr, :formula)
2020
return Dict{Symbol, Vector{Pair}}()
2121
end
22-
for t in rr.formula.rhs
23-
if has_fe(t)
24-
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(t)))
22+
fe_set = has_fe.(rr.formula.rhs)
23+
for (i, v) in enumerate(fe_set)
24+
if v && !isa(fe_set, Bool)
25+
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(rr.formula.rhs[i])))
26+
elseif v
27+
push!(out, RegressionTables.FixedEffectCoefName(RegressionTables.get_coefname(rr.formula.rhs)))
2528
end
2629
end
2730
if length(out) > 0

test/RegressionTables.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ function checkfilesarethesame(file1::String, file2::String)
6565
end
6666

6767
##
68+
rr_short = reg(df, @formula(SepalLength ~ log1p(SepalWidth)))
69+
tab = regtable(rr_short)
70+
@test tab[4, 1] == "log1p(SepalWidth)"
71+
6872

6973

7074
tab = regtable(rr4,rr5,lm1, lm2, gm1; renderSettings = asciiOutput(joinpath(dirname(@__FILE__), "tables", "ftest1.txt")), regression_statistics = [:nobs, :r2, :adjr2, :r2_within, :f, :p, :f_kp, :p_kp, :dof])

0 commit comments

Comments
 (0)