I have a repetative task in R and i'm trying to find a more efficient way to
perform
the following task.


lst <- list(roots = c("car insurance", "auto insurance"),
             roots2 = c("insurance"), prefix = c("cheap", "budget"),
             prefix2 = c("low cost"), suffix = c("quote", "quotes"),
             suffix2 = c("rate", "rates"), suffix3 = c("comparison"),
             state = c(state), inscompany = c(inscompany), city=c(city),
             cityst = c(cityst), agency=c(agency))


myone <- function(x, y) {
          m1 <- do.call(paste, expand.grid(lst[[x]], lst[[y]]))
          mydf <- data.frame(keyword=c(m1))
      }
      mytwo <- function(x, y, z){
          m2 <- do.call(paste, expand.grid(lst[[x]], lst[[y]], lst[[z]]))
          mydf2 <- data.frame(keyword=c(m2))
      }
      d1 = mytwo("prefix", "roots", "suffix")
      d2 = mytwo("prefix", "roots", "suffix2")
      d3 = mytwo("prefix", "roots", "suffix3")
      d4 = mytwo("prefix2", "roots", "suffix")
      d5 = mytwo("prefix2", "roots", "suffix2")
      d6 = mytwo("prefix2", "roots", "suffix3")
      d7 = mytwo("prefix", "roots2", "suffix")
      d8 = mytwo("prefix", "roots2", "suffix2")
      d9 = mytwo("prefix", "roots2", "suffix3")
      d10 = mytwo("prefix2", "roots2", "suffix")
      d11 = mytwo("prefix2", "roots2", "suffix2")
      d12 = mytwo("prefix2", "roots2", "suffix3")
      d13 = myone("prefix", "roots")
      d14 = myone("prefix2", "roots")
      d15 = myone("prefix", "roots2")
      d16 = myone("prefix2", "roots2")
      d17 = myone("roots", "suffix")
      d18 = myone("roots", "suffix2")
      d19 = myone("roots", "suffix3")
      d20 = myone("roots2", "suffix")
      d21 = myone("roots2", "suffix2")
      d22 = myone("roots2", "suffix3")
      d23 = myone("state", "roots")
      d24 = myone("city", "roots")
      d25 = myone("cityst", "roots")
      d26 = myone("inscompany", "roots")
      d27 = myone("state", "roots2")
      d28 = myone("city", "roots2")
      d29 = myone("cityst", "roots2")
      d30 = myone("inscompany", "roots2")
      d31 = mytwo("state", "roots", "suffix")
      d32 = mytwo("city", "roots", "suffix")
      d33 = mytwo("cityst", "roots", "suffix")
      d34 = mytwo("inscompany", "roots", "suffix")
      d35 = mytwo("state", "roots", "suffix2")
      d36 = mytwo("city", "roots", "suffix2")
      d37 = mytwo("cityst", "roots", "suffix2")
      d38 = mytwo("inscompany", "roots", "suffix2")
      d39 = mytwo("state", "roots", "suffix3")
      d40 = mytwo("city", "roots", "suffix3")
      d41 = mytwo("cityst", "roots", "suffix3")
      d42 = mytwo("inscompany", "roots", "suffix3")
      d43 = mytwo("state", "roots2", "suffix")
      d44 = mytwo("city", "roots2", "suffix")
      d45 = mytwo("cityst", "roots2", "suffix")
      d46 = mytwo("inscompany", "roots2", "suffix")
      d47 = mytwo("state", "roots2", "suffix2")
      d48 = mytwo("city", "roots2", "suffix2")
      d49 = mytwo("cityst", "roots2", "suffix2")
      d50 = mytwo("inscompany", "roots2", "suffix2")
      d51 = mytwo("state", "roots2", "suffix3")
      d52 = mytwo("city", "roots2", "suffix3")
      d53 = mytwo("cityst", "roots2", "suffix3")
      d54 = mytwo("inscompany", "roots2", "suffix3")
      d55 = mytwo("prefix", "state", "roots")
      d56 = mytwo("prefix", "city", "roots")
      d57 = mytwo("prefix", "cityst", "roots")
      d58 = mytwo("prefix", "inscompany", "roots")
      d59 = mytwo("prefix2", "state", "roots")
      d60 = mytwo("prefix2", "city", "roots")
      d61 = mytwo("prefix2", "cityst", "roots")
      d62 = mytwo("prefix2", "inscompany", "roots")
      d63 = mytwo("prefix", "state", "roots2")
      d64 = mytwo("prefix", "city", "roots2")
      d65 = mytwo("prefix", "cityst", "roots2")
      d66 = mytwo("prefix", "inscompany", "roots2")
      d67 = mytwo("prefix2", "state", "roots2")
      d68 = mytwo("prefix2", "city", "roots2")
      d69 = mytwo("prefix2", "cityst", "roots2")
      d70 = mytwo("prefix2", "inscompany", "roots2")
      d71 = mytwo("prefix", "inscompany", "suffix")
      d72 = mytwo("prefix", "inscompany", "suffix2")
      d73 = mytwo("prefix", "inscompany", "suffix3")
      d74 = mytwo("prefix2", "inscompany", "suffix")
      d75 = mytwo("prefix2", "inscompany", "suffix2")
      d76 = mytwo("prefix2", "inscompany", "suffix3")

Obviously, this code gets rather repetative, even with the function, and I
was
wondering if there's a shortcut that I should consider to simplify the
process.

Thanks,

I'm running R 2.13 on Ubuntu 10.10

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to