File: cnms2formula.R

package info (click to toggle)
r-cran-caic4 1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 376 kB
  • sloc: makefile: 2
file content (32 lines) | stat: -rw-r--r-- 904 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
cnms2formula <-
function(cnms) {
  # A function that builds a random effects formula from the ?component names?, 
  # a list that can be extracted from an lmerMod object by .@cnms or 
  # getME(., "cnms").
  #
  # Args: 
  #   cnms     = List from an lmerMod object by .@cnms or getME(., "cnms").
  #
  # Returns:
  #   reFormula = random effects part of a lmerMod formula
  #
  len      <- unlist(lapply(cnms, length))
  cnms     <- cnms[which(len != 0)]
  charForm <- character(length(cnms))
  
  for(i in 1:length(cnms)) {
    if (cnms[[i]][1] == "(Intercept)") {
      cnms[[i]][1] <- "1"
    } else {
      tpv <- cnms[[i]]
      cnms[[i]] <- append("",tpv)
      cnms[[i]][1] <- "-1"
    }
    charForm[i] <- paste("(", paste(cnms[[i]], collapse = " + "), 
                         " | ",names(cnms)[i], ")", sep = "")
  }
  
  reFormula <- paste(charForm, collapse = " + ")

  return(reFormula)
}