【发布时间】:2016-11-25 10:07:53
【问题描述】:
我有一个包含多个类别的数据集。我想对每个类别进行线性回归,而不必将数据子集到每个类别的新 dfs 中。我是这样做的:
category = c(rep(c("a","b","c"),100))
x = (rep(1:5,60))
y = rnorm(300)*5
df = data.frame(category,x,y)
models = dlply(df, "category", function(dflm)
lm(y ~ x, data = dflm))
lmcoefs = ldply(models, coef)
在 lmcoefs 中,我现在存储了每个类别的系数。
但是,我希望仅在每个类别平均值的 +/- 50% 范围内运行这些回归。因此,如果类别 A 的平均 y 值为 10,我只想在类别 A 的 y 值 5 和 15 之间进行回归。与类别 B 和 C 相同。
有没有办法在不拆分数据集和运行单个回归的情况下做到这一点?
谢谢, 唐
【问题讨论】:
标签: r regression linear-regression