Рассмотрим базовые R by
для построения групповых регрессий:
wgt_models <- by(df, df$grp, function(sub_df)
lm(y ~ x, weights = wght, data = sub_df)
)
Затем выполните итерацию по списку с for
, чтобы добавить panel.abline
слоев, и сделайте это без summary()
:
xyplot(y ~ x | grp, data= df, main = 'Original Data'),
panel = function(x, y) {
panel.xyplot(x, y)
for (m in wgt_models) panel.abline(m)
}
)
Потенциально, вы можете вызвать by
внутри, так как это тоже цикл, особенно примените семейный цикл:
xyplot(y ~ x | grp, data= df, main = 'Original Data'),
panel = function(x, y) {
panel.xyplot(x, y)
by(df, df$grp, function(sub_df)
panel.abline(lm(y ~ x, weights = wght, data = sub_df))
)
}
)