[R] Applying some equations over all unique combinations of 4 variables

John Kane jrkrideau at yahoo.ca
Fri Mar 9 20:13:41 CET 2007


#I have a data set that looks like this.   A bit more
complicated actually with
# three factor levels but these calculations need to
be done on one factor at a
#I then have a set of different rates that are applied
#to it.

#dataset
cata <- c( 1,1,6,1,1,2)
catb <- c( 1,2,3,4,5,6)
doga <- c(3,5,3,6,4, 0)

data1 <- data.frame(cata, catb, doga)
rm(cata,catb,doga)
data1

# start rates
# names for lists
fnams  <- c("af", "pf", "cf", "mf")
mnams  <-  c("am", "pm", "cm", "mm")

# Current layout of the rate data frames
alphahill <- list(af <- c("a1","a2","a3"), pf <-
c("d1","d2","d3"),
              cf <- c("f1","f2"), mf <- c("h1","h2"))
names(alphahill)  <-  fnams
       
betahill <- list(am <- c("b1","b2","b3"), pm<-
c("e1","e2","e3"),
             cm <- c("g1","g2"), mm <- c("j1", "j2"))
names(betahill) <- mnams

hilltop <- list(af <- data.frame(a1 <- 1:4 , a2 <-
2:5, a3 <- 3:6),
                pf <- data.frame(d1 <- 4:1, d2 <- 5:2,
d3 <- 6:3),
                cf <- data.frame(f1 <- 1:4, f2 <-
3:6),
                mf <- data.frame(h1 <- 1:4,  h2 <-
2:5))
                
hilldown <- list(am <- data.frame(b1 <- 4:1, b2 <-
5:2, b3 <- 6:3),
                 pm <- data.frame(e1 <- 5:1, e2 <-
1:5,e3 <- 6:2),
                 cm <- data.frame (g1 <- 5:1, g2 <-
1:5),
                 mm  <- data.frame(j1 <- 1:4,  j2 <-
5:2))
names(hilltop) <- fnams
names(hilldown) <- mnams
for (i in 1:4) {
  names(hilltop[[i]]) <- alphahill[[i]]
  names(hilldown[[i]]) <- betahill[[i]]
}

rm(a1,a2,a3,b1,b2,b3,d1,d2,d3,e1,e2,e3,f1,f2,g1,g2,h1,h2,j1,j2,
fnams, mnams,
    af, am,cf,cm,mf, mm,pf, pm)
# Now that's out of the way

#Assuming I am reading this problem correctly I should
have
#648  possible combinations for each row of data that
is:
#unique combinations where I need
#   (af*am) * (pf*pm) * (cf*cm) *  mf * mm
# ie (3*3)  *  (3* 3)  * (2*2)  *   2*2)
# based on the idea that there are  9  unique
combination for af & am and so
# on.

#     af   am
# 1   a1   b1
# 2   a2   b1
# 3   a3   b1
# 4   a1   b2
# 5   a2   b2
# 6   a3   b2
# 7   a1   b3
# 8   a2   b3
# 9   a3   b3

# I have a set of equations of the form :

#    P1 <- af*cata + pf*catb^cf + mf*doga
#    S1 <- am*cata + pm*catb^cm + mm*doga

#Is there any way that I can do something like this
and keep track of
#what condition is what since I need to be able to sum
the P1s and P2, for
# for each combination (or a subset of them) ?  I
suspect it may be a fairly
# straight-forward "apply " problem but I am having a
real problem with it.

# I am only likely to need to report, perhaps. 15
combinations but at the
# moment Idon't see any easy way to do them and doing
all possible outcomes and
# extracting the required ones looks like a better and
safer approach if it can
# be done.And will save a lot of time if we suddenly
need a few new comparisons.

# Any help would be greatly appreciated.



More information about the R-help mailing list