On Thu, 28 Jun 2007, Andrej Kastrin wrote: > Dear all, > > I have a data frame > a <- data.frame(cbind(x=c('a','a','a','b','c'), > y=c('a','b','c','d','e'),z=c(1,2,3,4,5))) > > a > x y z > 1 a a 1 > 2 a b 2 > 3 a c 3 > 4 b d 4 > 5 c e 5 > > and a matrix > mm <- matrix(0,5,5) > colnames(mm) <- c('a','b','c','d','e') > rownames(mm) <- c('a','b','c','d','e') > > mm > a b c d e > a 0 0 0 0 0 > b 0 0 0 0 0 > c 0 0 0 0 0 > d 0 0 0 0 0 > e 0 0 0 0 0 > > How to populate matrix in a way that first column of data frame 'a' > correspond to rownames(mm), second column to colnames(mm) and the third > column is the element of matrix 'mm'?
mm[cbind(a$x, a$y)] <- a$z Please read about the forms of indexing matrices in 'An Introduction to R'. -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help@stat.math.ethz.ch 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.