r - 按函数应用于 lm()

标签 r

我是 R 的新手,我只是在学习 apply功能及其工作方式。我只想从 lm 中提取系数适合几年内产品颜色和品牌的变量 x。

我知道我可以创建一个 for 循环并按型号年份对数据进行子集化并拟合它,但我认为是时候开始使用更多内置函数了,所以我希望能够使用 by 函数或应用程序之一来完成职能。这就是我的想法。

#some made up data

x<-rnorm(50,13400,1200)
color<-sample(factor(c("Red","Black","Blue","Green","White")),50,replace=T)
year<-sample(factor(2006:2012),50,replace=T)
brand<-sample(factor(c("A","B","C","D")),50,replace=T)

d<-data.frame(x,color,year,brand)

#now I want to fit the model lm(x~color+brand) for each year level
#this is what I was thinking...

tmp<-with(d,by(x,year,function(y) lm(x~color,data=y)))
sapply(tmp,coef)

Error in eval(predvars, data, env) : numeric 'envir' arg not of length one



我基于输入时 R 给出的示例 help(by)

最佳答案

试试这个:

tmp <- by(d, year, function(d.subset) lm(x~color, data=d.subset))

关于r - 按函数应用于 lm(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284544/

相关文章:

r - 将列值的一部分提取到新变量(变异)

r - 按事件拆分 xts 对象

r - 仅保留在其至少一列中包含某些条目的行

R:几何平均值的快速计算

r - 与R的deparse(substitute(var))相反?

r - 使用 family=gamma 运行 glm 时出错

r - 为什么我的用户在 ggplot2 的 geom_text 中提供的标签会生成错误?

Pythonsolve_ivp 与 R lsoda

r - data.table lapply .SD 随着列数的增加而大幅减慢

r - 如何使用facet_wrap产生的空白空间?