You can randomize the order (permute) of a single column with something like:
> x <- cbind( x=1:10, y=101:110, z=201:210 ) > rownames(x) <- letters[1:10] > new.x <- x > new.x[,1] <- sample(new.x[,1]) > new.x x y z a 8 101 201 b 10 102 202 c 5 103 203 d 9 104 204 e 3 105 205 f 1 106 206 g 7 107 207 h 4 108 208 i 2 109 209 j 6 110 210 You could do that for each of the columns that you want randomized. A quick way to do a separate randomization on each column is: > new.x <- apply(x, 2, sample) > rownames(new.x) <- letters[1:10] > new.x x y z a 2 101 203 b 3 107 204 c 6 102 205 d 1 104 207 e 4 105 208 f 7 108 201 g 10 110 206 h 8 106 209 i 5 103 210 j 9 109 202 > Hope this helps, -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare [EMAIL PROTECTED] (801) 408-8111 > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Grant Gillis > Sent: Wednesday, April 09, 2008 12:08 PM > To: r-help@r-project.org > Subject: [R] permutation/randomization > > Hello, > > I have what I suspect might be an easy problem but I am new > to R and stumped. I have a data set that looks something like this > > b<-c(2,3,4,5,6,7,8,9) > x<-c(2,3,4,5,6,7,8,9) > y<-c(9,8,7,6,5,4,3,2) > z<-c(9,8,7,6,1,2,3,4) > data<-cbind(x,y,z) > row.names(data)<-c('a','b','c','d','e','f','g','h') > > which gives: > > x y z > a 2 9 9 > b 3 8 8 > c 4 7 7 > d 5 6 6 > e 6 5 1 > f 7 4 2 > g 8 3 3 > h 9 2 4 > > I would like to randomize data within columns. The closest I > have been able to come permutes data within the columns but > keeps rows together along with row names(example below). For > some context, eventually I would like use this to generate > many data sets and perform calculations on these random data > sets (I think I know how to do this but we'll see). So > ideally I would like row names to remain the same (in order a > through h) and column data to randomize within columns but > independently of the other columns. Just shuffle the data > deck I guess > > > > data[permute(1:length(data[,1])),] > x y z > b 3 8 8 > c 4 7 7 > h 9 2 4 > e 6 5 1 > f 7 4 2 > a 2 9 9 > g 8 3 3 > d 5 6 6 > > > Thanks in advance for the help and also for the good advice > earlier this week. > > Cheers > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > ______________________________________________ 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.