Sorry, I wasn't sure what you meant. This way will return more than one answer, right?
N<-c(1,2,1,3) R<-c(1.75,3.5,1.75,1.3125) ## get all 126 combinations of five 0's and four 1's for matrix cbn<-as.matrix(expand.grid( rep( list(0:1), 9))) cbn<- cbn[rowSums(cbn)==4,] ans<-list() ctr<-0 ## loop through each combination for (i in 1:126){ x<-cbn[i,] ## replace 1's with N x[which(x==1)]<-N ## create matrix dim(x)<-c(3,3) ## calculate y and new R y <-sum(x) * x / (rowSums(x)%o%colSums(x)) R1<-y[y[1:3,]>0] # check if equal to original R if(identical(R, R1)) ans[[ctr<-ctr+1]]<-x } ans [[1]] [,1] [,2] [,3] [1,] 0 0 1 [2,] 1 0 3 [3,] 0 2 0 [[2]] [,1] [,2] [,3] [1,] 0 0 1 [2,] 0 2 0 [3,] 1 0 3 [[3]] [,1] [,2] [,3] [1,] 0 2 0 [2,] 0 0 1 [3,] 1 0 3 Chris francogrex wrote: > > Hi, thanks but the way you are doing it is to assign the values of N in > the x matrix, knowing from the example I have given where they are > supposed to be. While the assumption is, you ONLY have values of N and R > and do NOT know where they would be placed in the x and y matrix a-priori, > but their position has to be derived from only the (N and R) dataframe you > have. > > > > -- View this message in context: http://www.nabble.com/Generating-these-matrices-going-backwards-tf4807447.html#a13782676 Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.