On Tue, Mar 29, 2011 at 11:20:13AM -0500, Christopher Desjardins wrote: > I have 3 vectors: p1, p2, and p3. I would like each vector to be any > possible value between 0 and 1 and p1 + p2 + p3 = 1. I want to graph these > and I've thought about using scatterplot3d(). Here's what I have so far. > > library(scatterplot3d) > p1 <- c(1,0,0,.5,.5,0,.5,.25,.25,.34,.33,.33,.8,.1,.1,.9,.05,.05) > p2 <- c(0,1,0,.5,0,.5,.25,.5,.25,.33,.34,.33,.1,.8,.1,.05,.9,.05) > p3 <- c(0,0,1,0,.5,.5,.25,.25,.5,.33,.33,.34,.1,.1,.8,.05,.05,.9) > scatterplot3d(p1,p2,p3) > > > However, I wonder if there is an easy way to create vectors p1, p2, and p3.
Hi. The vectors p1, p2 and p3 are not uniquely determined. Try, for example, the following n <- 16 pp <- expand.grid(p1=0:n, p2=0:n, p3=0:n) pp <- subset(pp, p1 + p2 + p3 == n) p1 <- pp$p1/n p2 <- pp$p2/n p3 <- pp$p3/n If n is a power of 2, then p1 + p2 + p3 will be exactly all ones vector. Otherwise, there may be differences within machine rounding error. Hope this helps. Petr Savicky. ______________________________________________ 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.