[R] Sample without replacement
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Wed Sep 22 17:37:20 CEST 2004
Mark G Orr <morrct at andrew.cmu.edu> writes:
> Hello, I have a simple problem (checked the archives and the
> appropriate help pages, to no avail). I want to creat a vector that
> is length(2000). The vector is to consist of two strings( "std" and
> "dev") with 1760 "std"s and 240 "dev"s. Furthermore, for each element
> of the vector, i want the selection of one of the strings to be
> approx. random. The end result will be a vector with the following
> proportions: .12 "dev" and .88 "std". My solution, below, almost
> works, but i don't get the exact desired proportions:
>
>
> sample.from.vector <- c(rep("std",1760),rep("dev",240))
>
> make.vector <- rep(99,2000)
>
> for (i in 1:2000){
> make.vector[i] <- sample(sample.from.vector,1,replace=F)
> }
>
>
> As I understand the above code (which is not very well, obviously),
> each iteration assigns one element from the sample.from.vector to the
> current make.vector element; the element choosen from
> sample.from.vector is tagged so that i is not selected again.
> However, after the loop, make.vector contains, for example, 1758 stds
> and 242 devs. Each iteration results in a different proportion of
> stds and devs (although close to the desired, not right on).
>
> Any help would be greatly apprecitated.
It's staring you right in the face:
make.vector <- sample(sample.from.vector)
--
O__ ---- Peter Dalgaard Blegdamsvej 3
c/ /'_ --- Dept. of Biostatistics 2200 Cph. N
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list