From: Greg Snow <Greg.Snow_at_imail.org>

Date: Wed, 09 Apr 2008 14:20:45 -0600

Date: Wed, 09 Apr 2008 14:20:45 -0600

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 greg.snow_at_imail.org (801) 408-8111Received on Wed 09 Apr 2008 - 20:27:00 GMT

> -----Original Message-----

> From: r-help-bounces_at_r-project.org> [mailto:r-help-bounces_at_r-project.org] On Behalf Of Grant Gillis> Sent: Wednesday, April 09, 2008 12:08 PM> To: r-help_at_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_at_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_at_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.

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Wed 09 Apr 2008 - 20:30:40 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*