Julia 朱莉娅:我如何用“@公式”中的符号来构造“术语”?
假设我正在拟合一个GLM,我想使用一个变量来指定特征项,该变量包含我想要拟合的列名列表。我该怎么做 我试过了Julia 朱莉娅:我如何用“@公式”中的符号来构造“术语”?,julia,Julia,假设我正在拟合一个GLM,我想使用一个变量来指定特征项,该变量包含我想要拟合的列名列表。我该怎么做 我试过了 using GLM vars = ["b", "b", "c"] glm(@formula(label~terms.(vars)), data = df) 但它不起作用。我想做什么 glm(@formula(label~a+b+b), data=df) 但是当然ab和c是特定于此数据集的。我需要一个可以接受字符串向量格式的
using GLM
vars = ["b", "b", "c"]
glm(@formula(label~terms.(vars)), data = df)
但它不起作用。我想做什么
glm(@formula(label~a+b+b), data=df)
但是当然a
b
和c
是特定于此数据集的。我需要一个可以接受字符串向量格式的术语集,并为其创建正确的公式。请参阅以编程方式构造的
如果你有一个字符串向量,你可以
vars = ["a", "b", "c"] .|> Symbol # Or just start with symbols...
f = Term(:label) ~ sum(vars)
glm(f, df, Binomial()) # or whatever you want
建筑产量
julia> f = Term(:label)~sum(Term.(vars))
FormulaTerm
Response:
label(unknown)
Predictors:
a(unknown)
b(unknown)
c(unknown)
给
julia> glm(f, df, Binomial())
StatsModels.TableRegressionModel{...
label ~ 1 + a + b + c
Coefficients:
─────────────────────────────────────────────────────────────────────────
Coef. Std. Error z Pr(>|z|) Lower 95% Upper 95%
─────────────────────────────────────────────────────────────────────────
(Intercept) 1.73573 2.6848 0.65 0.5180 -3.52637 6.99784
a 0.777821 3.78865 0.21 0.8373 -6.6478 8.20344
b -0.874216 2.48471 -0.35 0.7250 -5.74415 3.99572
c -2.20088 2.19081 -1.00 0.3151 -6.49478 2.09303
─────────────────────────────────────────────────────────────────────────
注意:我只是得到随机垃圾数据,所以不要关注表内容。这是否回答了您的问题?