julia> using StatsModels, FixedEffectModels
julia> import StatsModels: capture_call
julia> macro Atest2(ex)
StatsModels.is_call(ex, :~)
length(ex.args) == 3
StatsModels.terms!(StatsModels.sort_terms!(StatsModels.parse!(ex)))
end
@Atest2 (macro with 1 method)
julia> f1 = @Atest2(Sales ~ NDI + fe(State) + fe(Year))
FormulaTerm
Response:
Sales(unknown)
Predictors:
NDI(unknown)
(State)->fe(State)
(Year)->fe(Year)
julia> typeof(f1)
FormulaTerm{Term, Tuple{Term, FunctionTerm{typeof(fe), var"#3#5", (:State,)}, FunctionTerm{typeof(fe), var"#4#6", (:Year,)}}}
我在尝试查看FixedEffectModels这个包的源码,然后一点点拆解后学习,上面的例子是我尝试复现包里的一段代码。
我把输出结果整理下,方便查看
FormulaTerm{
Term,
Tuple{Term,
FunctionTerm{typeof(fe), var"#3#5", (:State,)},
FunctionTerm{typeof(fe), var"#4#6", (:Year,)}
}
}
我的第一个问题是:
- 1
var"#3#5"
这些是什么东西呢? - 2 这种不断嵌套的类型,该怎么分析?构造这么复杂的类型,是julia开发鼓励的吗?
另外,我想请教一下有没有阅读包的一些资料推荐,或者,教如何写一些工程化,项目化的代码的资料或教材?我目前看到的都是解释语法的,但是一个项目如何写,却没有头绪。我想看看,这样可能会对我阅读包有帮助。