我是 R 的新手,我只是在学习这些apply
功能以及它们是如何工作的。我只是想从lm
几年内按产品颜色和品牌对变量 x 的拟合中提取系数。
我知道我可以创建一个 for 循环并按型号年份对数据进行子集化并对其进行拟合,但我认为是时候开始使用更多内置函数了,所以我希望能够使用 by 函数或其中一个 apply 来完成功能。这就是我的想法。
#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)
eval 中的错误(predvars,data,env):数字“envir”arg 长度不为 1
我是根据我进入时 R 给出的例子help(by)