R:回归所有与某种模式匹配的变量

时间:2015-11-30 19:40:25

标签: regex r

R中是否有办法将所有变量添加到与特定模式匹配的回归中?例如,我的数据集中有一堆变量对应于带有前缀h_的假日,而我有其他变量和其他前缀,例如_

有没有办法做这样的事情:

lm(homicide ~ w_* + a_*, data= df)

2 个答案:

答案 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