On Sep 27, 2009, at 10:45 PM, ewaters wrote:
I have a large data frame, 77 rows, with 10 columns. Each row
represents a
unique individual with 10 characteristics, some of which are
categorical
factors and some continuous numeric variables.
Most of us would consider that a small dataframe, unless of course we
entered the values by hand as you may have.
Each of the ten variables is
important (the 10 columns obviously correspond to the individuals of
interest). Importantly, this data set represents a population (not
sample)
of people with a certain medical condition.
You have the world's enumeration of persons with condition X? Besides
that obvious objection, if you really thought you had an entire
population, there would be little point in doing statistics through
random sampling.
What I want to do is to select 2000 random samples of between 2 and 24
individuals, preserving all the information.
I can easily write loops that will sample from 1:77 2 - 24 times,
what I
really want to know is there any way to easily link the output of
loops like
that to the data set so I don't have to trawl through and do it
manually
2000 times?
If you have a vector, vec of any length that represents a sample from
1:77 and your dataframe is df1, then you can use that index vector to
extract a group thusly:
df1[vec, ]
Example:
> set.seed(97)
> df1 <- data.frame(casenum=1:77, ht=rnorm(77, 56, 7), wt=rnorm(77,
160, 30) )
> df1[c(17, 29, 36, 55, 72), ]
casenum ht wt
17 17 62.68708 110.0956
29 29 69.97378 124.9440
36 36 49.97847 101.8919
55 55 57.46707 169.7421
72 72 52.25796 118.2071
Any advice on whether I should even attempt that in R, or try some
sort of
hash table in C or somewhere, would be appreciated.
--
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
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.