R中是否有办法将所有变量添加到与特定模式匹配的回归中?例如,我的数据集中有一堆变量对应于带有前缀h_的假日,而我有其他变量和其他前缀,例如_
有没有办法做这样的事情:
lm(homicide ~ w_* + a_*, data= df)
答案 0 :(得分:4)
要以编程方式构建公式,请查看reformulate()
。
这是一个使用grep()
查找以"d"
开头的所有变量,然后使用reformulate()
将其作为RHS上的回归变量插入的示例公式对象。
vv <- grep("^d.*", names(mtcars), value=TRUE)
ff <- reformulate(termlabels=vv, response="mpg")
lm(ff, data=mtcars)
#
# Call:
# lm(formula = ff, data = mtcars)
#
# Coefficients:
# (Intercept) disp drat
# 21.84488 -0.03569 1.80203
答案 1 :(得分:0)
字符串可以转换为公式。
case
when array_agg(ot.userid) = array[null]::bigint[] then array[]::bigint[]
else array_agg(ot.userid)
end