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. -Mark Orr ________________________________ Mark G. Orr Postdoctoral Research Fellow Dept. of Neuroscience RM 825 Kennedy Center Albert Einstein College of Medicine Bronx, NY 10461 718-430-2610
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