Skip to content

Passing formula as parameter to `lm` within `sapply` causes error [BUG?]

2 messages · Jens Heumann, Peter Dalgaard

#
Thanks a lot for your hint, David. It finally worked doing:

 > sapply(unique(data[[st]]), function(s)
+   summary(do.call("lm", list(FO, data, data[[st]] == s,
+                              data[[ws]])))$coef[1, ])
                 [,1]       [,2]         [,3]
Estimate   1.6269038 -0.1404174 -0.010338774
Std. Error 0.9042738  0.4577001  1.858138516
t value    1.7991275 -0.3067890 -0.005564049
Pr(>|t|)   0.3229600  0.8104951  0.996457853

Best,
Jens
On 30.04.2019 23:03, David Winsemius wrote:
#
Or, following up on the hint by Duncan, this works too
+   environment(FO) <- environment()
+   summary(lm(FO, data, data[[st]] == s, data[[ws]]))$coef[1, ]
+   })  # !!!
                [,1]       [,2]         [,3]
Estimate   1.6269038 -0.1404174 -0.010338774
Std. Error 0.9042738  0.4577001  1.858138516
t value    1.7991275 -0.3067890 -0.005564049
Pr(>|t|)   0.3229600  0.8104951  0.996457853

or even :
+   environment(FO) <- environment()
+   summary(lm(FO, data, z == s, w))$coef[1, ]
+   })  # !!!
                [,1]       [,2]         [,3]
Estimate   1.6269038 -0.1404174 -0.010338774
Std. Error 0.9042738  0.4577001  1.858138516
t value    1.7991275 -0.3067890 -0.005564049
Pr(>|t|)   0.3229600  0.8104951  0.996457853