如何在lm()中对一系列值进行子集化

时间:2015-10-13 22:15:36

标签: r subset

lm()的帮助文件没有进入子参数的语法。我不知道如何找到最适合我数据集的一部分的行。这个问题很相似,但我无法使用它来解决我的特定问题。 How does the subset argument work in the lm() function?

这是我的代码:

    with(dat[dat$SIZE <7 & dat$SIZE > 0.8 ,], plot(SP.RICH~SIZE, log="x",
      xlim=c(1,9), ylim=c(60,180), ylab="plant species richness", 
      xlab="log area (ha)", type="n"))
   with(dat[dat$SIZE <7 & dat$SIZE > 0.8 ,], points(SP.RICH~SIZE, pch=20, cex=1))
   fit=lm(SP.RICH~SIZE, subset=c(1:7))

我想确保回归线仅针对plot()和points()命令中上面的子集绘制。

2 个答案:

答案 0 :(得分:5)

lm()和其他模型拟合函数中的子集参数将逻辑向量作为数据帧的长度作为其参数,在数据帧的环境中进行评估。所以,如果我理解正确,我会使用以下内容:

fit <- lm(SP.RICH~SIZE, data=dat, subset=(SIZE>0.8 & SIZE<7))

答案 1 :(得分:0)

但是,如果您要为数据中的每个组运行一个流明,上述解决方案将无济于事-假设您将不同的国家/地区列为一列,并且希望了解每个国家/地区内的富裕程度与规模之间的关系。 / p>

为此,我建议遵循R http://astrostatistics.psu.edu/su07/R/html/base/html/by.html中的功能帮助:

tmp

从列表swap_dims中可以提取所需的任何lm参数。