Hi Mike,

take an index vector that selects Monday and Tuesday out of each week, and then run a restricted random permutation on this vector which only permutes indices within each week. rperm() is in the sna package.

library(sna)
foo <- rep(c(TRUE,TRUE,FALSE,FALSE,FALSE),26)
your.data[foo[rperm(rep(seq(1,26),each=5))],]

HTH,
Stephan


Hosack, Michael schrieb:
Fellow R users,

I am stumped on what would seem to be something fairly simple. I have a dataframe that has a variable named 'WEEK' that takes the numbers 1:26 (26 week time-period) with each number repeated five times consecutively (once for each weekday, Monday through Friday). Ex. 111112222233333.....2626262626. I would like to randomly extract two weekdays per five day week for each of 26 weeks and store this data as a separate dataframe. I have been unable to get the sample function to work properly. I have also tried using the runif function to assign random numbers to each row of my dataframe, sort the dataframe first by week number then by random number value, and finally select the first two elements from each week subset (26 weeks total,
giving 52 randomly selected values).  I can't figure out how
to select the first two elements. My goal is to randomly select two weekdays per week (without replacement) for each of 26 consecutive weeks. Any advice would be greatly appreciated.

Thank you,

Mike

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

Reply via email to