> I would like to get the frequency
> (counts) of all the variables in a single column (that is 
> easy), but I would also like to return the value 0 for the 
> absence of variables defined in another column.

If you use factor() on your columns and include all the animals in the factor 
levels, you should get what you want.

For example

animal.names <- sort(c("fish", "dog", "tiger", "cat"))
V1 <- sample(c('cat', 'tiger'), 10, replace=TRUE)
V1 <- factor(V1, levels=animal.names)
table(V1)

For your data frame, you can get animal.names from your existing data set 
directly rather than specify in advance. If they are all already factors (as 
they will be if you have used as.data.frame on a character matrix) you can get 
all the levels using rapply. Re-using factor will again get you what you're 
after:

animals <- 
matrix(c('cat','tiger','cat','tiger','fish','fish','dog','dog'),ncol=2, byrow=F)
animals <- as.data.frame(animals)

animal.names <- sort(rapply(animals, levels))
animals2 <- as.data.frame( lapply(animals, factor, levels=animal.names))
table(animals2$V1)

For extra safety, you might want to wrap the second factor() round an 
as.character:
animal.names <- sort(rapply(animals, levels))
animals2 <- as.data.frame( lapply(animals, function(x, l) 
factor(as.character(x), levels=l), l=animal.names))
 table(animals2$V1)

S Ellison
*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}

______________________________________________
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