I have written a function which returns an "incorrect number of
subscriptions error" and am unable to identify why this should happen.
Any help would be gratefully received.


The problem:
I would like to generate combinations/permutations across different
selections - for example all the combinations of  "3 chosen from 6"
combined with "5 chosen from 8" combined with "2 chosen from 4".

Loading gtools I can generate the combinations for each selection

sec1 = combinations(4,2,1:4)
sec2 = combinations(6,3,5:10)
sec3 = combinations(8,5,11:18)

I then wrote a function to combine the combinations for each selection.

multiperm <-function(x, y)  # function to combine combinations
{
 xdim = nrow(x)
 xcol = ncol(x)
 ydim = nrow(y)
 ycol = ncol(y)

 v1 = matrix(  nrow = xdim*ydim, ncol = xcol+ycol )

 for ( i in  1:xdim)  {
	for (j in 1:ydim){
		 v1[i + (j-1)*xdim , ] = c(x[i,], y[j, ])}
 } 
 v1 = data.frame(v1)   # set output as dataframe
}


This works fine when combining sec1 and sec2,  

comb =  multiperm(sec1,sec2)

However when I try to reapply the function to combine the joint
combinations of sec1 and sec2 along with sec3

comb= data.frame(comb)
acomb =  multiperm(comb,sec3)

 an  "Error: incorrect number of subscripts on matrix" error occurs.

Can anyone explain why this is the case and how I can resolve it?

Many thanks

Mark Abrahams






We provide assessment products and services that enable organisations to recruit, retain and develop talented people.
	[[alternative HTML version deleted]]

