Soy nuevo en R y estoy aprendiendo sobre las funciones apply
y cómo funcionan. Simplemente quiero extraer los coeficientes de un ajuste de lm
en una variable x por color de producto y marca a lo largo de varios años.Aplicar por función a lm()
Sé que puedo crear un bucle forzado y subconjunto de los datos por año modelo y ajustarlos, pero creo que es hora de que empiece a usar más funciones integradas, por lo que quiero poder hacerlo con la función por o una de las funciones de aplicar. Esto es lo que estaba pensando.
#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 en eval (predvars, datos, env): numérico 'AMBIENTALIZ' arg no de una longitud de
estoy basando esto de la exapmle R dio cuando entré help(by)
Usted está mezclando a diferentes paradigmas para la creación de ambientes:. El 'with'-paradigma y los datos' = 'paradigma.Además, la variable d $ x tenía 50 valores distintos, por lo que habría estado pasando marcos de datos de una sola línea a lm(). Parece que mplourde fue capaz de discernir su intención, por lo que voy a eliminar este comentario en un momento después acepta su respuesta –
te lo sugiero pero solo por "marca" ... y mantenlo simple ... quizás entienda cómo funciona – moldovean