如何在 lm() 中对一系列值进行子集化
How to subset a range of values in lm()
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() 命令中上述子集的值绘制回归线。
lm()
和其他模型拟合函数中的子集参数将数据帧的长度作为其参数,在数据帧的环境中进行评估。所以,如果我理解正确的话,我会使用以下内容:
fit <- lm(SP.RICH~SIZE, data=dat, subset=(SIZE>0.8 & SIZE<7))
但是,如果您想 运行 为数据中的每个组分配一个 lm,则上述解决方案无济于事 - 假设您有不同的国家/地区作为一列,并且您想了解丰富度与丰富度之间的关系每个国家/地区的大小。
为此,我建议遵循 R http://astrostatistics.psu.edu/su07/R/html/base/html/by.html:
中的函数帮助
require(stats)
attach(warpbreaks)
by(warpbreaks[, 1:2], tension, summary)
by(warpbreaks[, 1], list(wool = wool, tension = tension), summary)
by(warpbreaks, tension, function(x) lm(breaks ~ wool, data = x))
## now suppose we want to extract the coefficients by group
tmp <- by(warpbreaks, tension, function(x) lm(breaks ~ wool, data = x))
sapply(tmp, coef)
您可以从列表 tmp
中提取您喜欢的任何 lm 参数。
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() 命令中上述子集的值绘制回归线。
lm()
和其他模型拟合函数中的子集参数将数据帧的长度作为其参数,在数据帧的环境中进行评估。所以,如果我理解正确的话,我会使用以下内容:
fit <- lm(SP.RICH~SIZE, data=dat, subset=(SIZE>0.8 & SIZE<7))
但是,如果您想 运行 为数据中的每个组分配一个 lm,则上述解决方案无济于事 - 假设您有不同的国家/地区作为一列,并且您想了解丰富度与丰富度之间的关系每个国家/地区的大小。
为此,我建议遵循 R http://astrostatistics.psu.edu/su07/R/html/base/html/by.html:
中的函数帮助require(stats)
attach(warpbreaks)
by(warpbreaks[, 1:2], tension, summary)
by(warpbreaks[, 1], list(wool = wool, tension = tension), summary)
by(warpbreaks, tension, function(x) lm(breaks ~ wool, data = x))
## now suppose we want to extract the coefficients by group
tmp <- by(warpbreaks, tension, function(x) lm(breaks ~ wool, data = x))
sapply(tmp, coef)
您可以从列表 tmp
中提取您喜欢的任何 lm 参数。