我是R新手,剛剛學習了apply
函數及其工作原理。我只是想在幾年內從產品顏色和品牌中提取適合變量x的lm
的係數。按功能應用lm()
我知道我可以創建一個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)
錯誤的eval(predvars,數據,ENV):數字 'ENVIR' 精氨酸不長度當我進入
一個help(by)
我立足這個離exapmleř得到的
你混合不同的範式設立環境:該'with'範式和'數據= '範例,而且,d $ x變量有50個不同的值,所以你只會將單行數據幀傳遞給lm()。看起來mplourde能夠辨別你的意圖,所以我會在你之後刪除這個註釋接受他/她的回答 –
我建議你,但通過「品牌」只...並保持簡單...也許然後我會明白它是如何工作的 – moldovean