[R] Transform array in dataframe; melt(); reshape()
Cecilia Carmo
cecilia.carmo at ua.pt
Tue Aug 11 20:15:43 CEST 2009
Hi everyone.
Could anyone help me to reshape my data?
Reproducible example:
firm<-sort(rep(1:1000,10),decreasing=F)
year<-rep(1998:2007,1000)
industry<-rep(c(rep(1,10),rep(2,10),rep(3,10),rep(4,10),rep(5,10),rep(6,10),rep(7,10),rep(8,10),rep(9,10),
+ rep(10,10)),1000)
X1<-rnorm(10000)
X2<-rnorm(10000,mean=0.5,sd=0.1)
Y<-rnorm(10000,mean=0,sd=0.5)
data<-data.frame(firm, industry,year,X1,X2,Y)
With that data I have done:
funcao<-function(data,...)(round(summary(lmList(Y~X1+X2|
year, na.action=na.omit,data))$coefficients,3))
coef1<-daply(data,.(industry),"funcao")
coef2<-aperm(coef1,c(2,4,3,1),resize=TRUE)
coef3<-coef2[,,"Estimate",]
Now I have an array with the coefficients of lmList but I
need a dataframe with this columns:
Year Industry (Estimate) X1 X2
I have tried melt () from package reshape, but it doesnt
do what I want (or I dont know how to transform the
output it in a dataframe). Could anyone help me?
Thanks in advance,
Cecília Carmo
(Universidade de Aveiro - Portugal)
More information about the R-help
mailing list