David Crow <david.crow <at> cide.edu> writes: > > Hi, R users- > > I'm estimating random effects models with cross-level interactions; I want > to interact each of a vector of level-1 variables with each of a vector of > level-2 variables. Here's the code: > > ==================== > #create data frame with level-1 variables > k <- as.data.frame(cbind(robo, asalto, secuestro, asesinato)) > > #create data frame with level-2 variables > l <- as.data.frame(cbind(IDH_IDH, IDH_ingpc, eco_pb, IM_indice, tasa_robo, > hom_tasa, totdelitos1, totdelitos2, total, pri, pan, prd)) > > #get cross-level interactions > > for (i in 1:length(k)) { > for (j in 1:length(l)) { > print(summary(lmer(hrprotcrim ~ k[,i]*l[,j] + (k[,i] | Municipio)))) > } > } > ====================== > > The code works and produces 48 (4 level-1 x 12 level-2) sets of output. > The problem is, the output is illegible because instead of the variable > names, I get the indices: > > [output] > ================================== > Linear mixed model fit by REML ['lmerMod'] > Formula: hrprotcrim ~ k[, i] * l[, j] + (k[, i] | Municipio) >
[snip] > Two questions: > > 1) How can I get variable names instead of indices in the above output > 2) How can I estimate this with "mapply" instead of the double loop? > > Here's the code for "mapply" > > M4 <- mapply(function(k,l){summary(lmer(hrprotcrim ~ k*l + (k | > Municipio)))}) > > And here's what I get: > > list() > I would suggest appropriate use of ?reformulate Assume dd is a data frame containing all variables lev1vars <- c("robo", "asalto", "secuestro", "asesinato") lev2vars <- c("IDH_IDH", "IDH_ingpc", ...) ffun <- function(L1var,L2var) { ff <- reformulate(paste(L1var,L2var,sep="*"), paste(L1var,"Municipio",sep="|"), response="hrprotcrim") environment(ff) <- parent.frame() ## trickiness return(summary(lmer(ff,data=dd))) } mapply(ffun,lev1vars,lev2vars) ? If you had given a reproducible example I could have tested this ... ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.