Hey Anthony,
My previous function may not work in all cases. Say one of the
experiments yields these numbers:
1,2,3,6,7
Would you say that the proportion of consecutive numbers is 100%? If
so, this will work:
prop.diff=function(x){
d=diff(sort(x))
prop=sum((c(0,d==1)+c(d==1,0))>0)
prop=prop/length(x)
return(prop)}
This function first identifies which numbers in your original vector are
part of a sequence of consecutive numbers.
Julian
Julian Burgos wrote:
Hey Anthony,
There must be many ways to do this. This is one of them:
#First, define a function to calculate the proportion of consecutive
numbers in a vector.
prop.diff=function(x){
d=diff(sort(x))
prop=(sum(d==1)+1)/length(x)
return(prop)}
#Note that I am counting both numbers in a consecutive pair. For
example, the vector c(1,2,6,9,10) will contain 4 consecutive numbers. I
think this is what you wanted do do, right?
#Next, generate a matrix with 1000 columns (one for each experiment) and
5 rows (the five numbers in each experiment). Note the use of the
'replicate' function to generate multiple sets of random numbers
selection=replicate(1000,sort(sample(1:30,5)))
#Third, use the apply function to apply the function we defined above to
each column of the matrix
diffs=apply(selection,2,prop.diff)
# This will give you a vector with the 1000 proportions of consecutive
numbers
Julian
Anthony28 wrote:
I need to use R to model a large number of experiments (say, 1000). Each
experiment involves the random selection of 5 numbers (without
replacement)
from a pool of numbers ranging between 1 and 30.
What I need to know is what *proportion* of those experiments contains
two
or more numbers that are consecutive. So, for instance, an experiment
that
yielded the numbers 2, 28, 31, 4, 27 would be considered a "consecutive =
true" experiment since 28 and 27 are two consecutive numbers, even though
they are not side-by-side.
I am quite new to R, so really am puzzled as to how to go about this.
I've
tried sorting each experiment, and then subtracting adjacent pairs of
numbers to see if the difference is plus or minus 1. I'm also unsure
about
whether to use an array to store all the data first.
Any assistance would be much appreciated.
______________________________________________
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.