私はRが初めてで、apply
関数とその仕組みについて学んでいます。lm
変数 x の適合から、製品の色とブランドごとに数年間にわたって係数を抽出したいだけです。
for ループを作成し、モデル年ごとにデータをサブセット化して適合させることができることはわかっていますが、組み込み関数をもっと使い始める時が来たと思うので、by 関数または適用の 1 つを使用してそれを実行できるようにしたいと考えています。機能。これが私が考えていたことです。
#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)