循环内的线性模型(循环用于子集数据)

乔治·库迪斯

我在R中有一个(我认为应该是)直截了当的问题,而且似乎无法使它正常工作。希望您能提供帮助。

我有一个数据框,例如:

x  y  z
1  2  a
2  3  a
3  4  a
4  5  b
5  6  b
6  7  b      etc...

我为每个z值子集(例如a,b ...)拟合线性模型(y〜x),并提取梯度。

当我使用with语句选择“ a”时,它会起作用:

coef(with(subset(data.frame, z == "a"), {lm(y ~ x)
}))[2]

但是我的问题是Z列中有1000多个唯一值。因此,我尝试设置一个循环(我知道R用户讨厌循环!)来依次对z的每个值执行此操作,并将结果返回到数据帧中。代码是:

gradient.lm = NULL

unique.z <- as.matrix((unique(data.frame$z)))
count.z <- nrow(unique.z)

for (i in 1:count.z) {
  gradient.lm[i] = coef((with(subset(data.frame, z == [i]), {lm(y ~ z)
  })))[2]
}

但这不起作用,并给我错误代码:

> for (i in 1:count.z) {
+   activity.lm[i] = coef((with(subset(data.frame, z == [i]), {lm(y ~ x)
Error: unexpected '[' in:
"for (i in 1:count.z) {
  activity.lm[i] = coef((with(subset(data.frame, z == ["
>   })))[2]
Error: unexpected '}' in "  }"
> }
Error: unexpected '}' in "}"

我的猜测是,它没有意识到with函数中没有[i]。

我找不到做这项工作的方法,也没有想出另一种方法来做。如果您有任何建议,将不胜感激。

希罗卡

在base-R中,为您提供仅包含您显然感兴趣的渐变的命名向量:

gradient.lm <- unlist(lapply(split(df,df$z),function(chunk){
  return(coef(lm(y~x, data=chunk))[[2]])
}))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

模拟循环内的子集数据

来自分类Dev

循环在子集数据帧上运行模型

来自分类Dev

在for循环内子集数据集

来自分类Dev

子集数据表而不是for循环R的更快方法

来自分类Dev

使用R创建一个循环以子集数据

来自分类Dev

子集数据表而不是for循环R的更快方法

来自分类Dev

子集数据框并用循环绘制所有子集 [R]

来自分类Dev

如何在数据框(或子集数据框)列表上循环地理映射功能

来自分类Dev

如何从多个数据帧中为for循环子集数据

来自分类Dev

for循环内的子集

来自分类Dev

将线性模型系数提取到循环内的向量中

来自分类Dev

使用循环根据R中的子集数据计算相关性

来自分类Dev

for循环,用于熊猫数据框子集的多个图

来自分类Dev

函数内的循环以生成数据帧的子集

来自分类Dev

R中for循环内的子集

来自分类Dev

如何从循环中收集数据

来自分类Dev

收集数据时发生Python循环

来自分类Dev

子集数据

来自分类Dev

用于均匀拆分列值的子集数据框

来自分类Dev

使用 if else 条件应用于数据帧的子集(或完整的数据帧)运行循环

来自分类Dev

R:如何在数据框列表上循环线性模型?

来自分类Dev

gnuplot线性拟合在for循环内

来自分类Dev

使用数据框子集更有效地将Python用于循环

来自分类Dev

用于计算 r 中数据帧子集平均值的循环

来自分类Dev

MVC模型内的foreach循环

来自分类Dev

分割数据并运行线性回归循环

来自分类Dev

子集数据并使用Shiny绘制此子集数据

来自分类Dev

子集数据中断GLM

来自分类Dev

R中的子集数据