On Thu, 20 Aug 2009, Tal Galili wrote:

Hello dear R-help group.

My task looks simple, but I can't seem to find a "smart" (e.g: non loop)
solution to it.

Task: I wish to randomize a data.frame by one column, while keeping the
inner-order in the second column as is.


        xx[ order( sample( unique( xx$a ) )[ xx$a ] ), ]


HTH,

Chuck



So for example, let's say I have the following data.frame:

xx <-data.frame(a=  c(1,2,2,3,3,3,4,4,4,4) ,
                       b =  c(1,1,2,1,2,3,1,2,3,4) )

I would like to shuffle it by column "a", while keeping the order in column
"b".

Here is my "not-smart" way of doing it:

# R example
xx <-data.frame(a=  c(1,2,2,3,3,3,4,4,4,4) ,
                       b =  c(1,1,2,1,2,3,1,2,3,4) )

randomize.by.column.a <- function(xx)
{
new.a.order <- sample(unique(xx$a))
new.xx <- NULL
for(i in new.a.order)
{
 xx.subset <- xx[ xx$a %in% i ,]
 new.xx <- rbind(new.xx ,  xx.subset)
}

return(new.xx)
}
randomize.by.column.a(xx)
# END of - R example



I would love for a better, faster, way of doing it.

Thanks,
Tal










--
----------------------------------------------


My contact information:
Tal Galili
Phone number: 972-50-3373767
FaceBook: Tal Galili
My Blogs:
http://www.r-statistics.com/
http://www.talgalili.com
http://www.biostatistics.co.il

        [[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.


Charles C. Berry                            (858) 534-2098
                                            Dept of Family/Preventive Medicine
E mailto:cbe...@tajo.ucsd.edu               UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/  La Jolla, San Diego 92093-0901

______________________________________________
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