我是 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/