On 29-01-2012, at 18:18, C_Crown wrote:

> Hi all, I am  very new to R. I am taking a course and am trying to complete
> my first assignment. 
> For the assignment I have to get the program to generate different color
> combinations possible for a sample size of 55 with the probabilities of each
> color being chosen as: .24, .24, .16, .20, .13, .14. Here is what I've come
> up with... 
> 
> sample.size<- 55
> MM.probability<- c(.24, .24, .16, .20, .13, .14)
> MM.color<- c('Bl','Br','G','O','R','Y')
> mmtable<- matrix(nrow = 1000, ncol = 6)
> for(i in 1:1000){
> combinations<- sample(MM.color, sample.size, replace = T, prob =
> MM.probability)
> mmtable[i,]<-table(combinations)
> colnames(mmtable)<- c("Bl","Br","G","O","R","Y")
> }
> 
> I feel like it should work, but every time I run it, it usually only goes so
> far (maybe to row 350, or 450, sometimes it completes with no problem)
> before I start getting "NA" in every column of every row. I also get this
> error message "Error in mmtable[i, ] <- table(combinations) :  number of
> items to replace is not a multiple of replacement length"
> Someone suggested that it is because the program is coming upon a
> combination that is missing one of the colors, so I'd have to instruct it to
> put a zero in place of the missing color so the simulation can continue,
> which completely makes sense. But I've been trying and can't figure out how
> to do it.

This is homework. "Someone's"  guess as to what is causing the problem is 
correct.
However:

Create mmtable as a matrix with all 0's and give the columns the names of 
colors.
Like this

mmtable  <- matrix(0, nrow = 1000, ncol = 6, dimnames=list(c(),MM.color))

Then in the loop replace the lines 

mmtable[i,]<-table(combinations)
colnames(mmtable)<- c("Bl","Br","G","O","R","Y")

with

    z <- table(combinations)
    mmtable[i,names(z)] <- z

The second line stores the entries in z in the columns with the same column 
name and leaves the others alone.

Since you initialized mmtable with 0's you won't need to replace NA's with 0.

Berend

______________________________________________
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