On Aug 3, 2012, at 5:55 PM, darnold wrote:
Hi,
Reading about a "Heads and Tails" game in
http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/amsbook.mac.pdf
Introduction to Probability (Example 1.4, pp. 5-8).
You toss a coin 40 times. If heads, Peter wins $1, tails, he loses
$1. I
think I can do that ok with:
winnings <- sum(sample(c(-1,1), 40, replace=TRUE))
But I have to do it 10,000 times and I have to record and collect the
winnings. In other languages, I would probably use a for loop and
"push"
each winnings into some sort of collective array or vector. However,
for
loops seem to be discouraged in R and it seems the same can be said
for
"pushing" a calculation onto a vector. So, can someone give me some
guidance
on how to collect 10,000 winnings?
What's wrong with:
set.seed(123) # always good to make reproducible
winnings <- sum(sample(c(-1,1), 10000, replace=TRUE))
The second part of the game asks us to keep track of how often Peter
is in
the lead during each game. Obviously, he is in the lead at any
moment his
cumulative winnings are positive. But the game requires that we also
do
something at the moment the cumulative winnings are zero.
?cumsum
?which
(1) if the
previous cumulative sum was nonnegative, then the zero counts a
"staying in
the lead." So, for example, during a single game, Peter might be in
the lead
for say 34 out of the 40 tosses. I must record the 34 and perform
the game
9,999 more times, each time recording the number of times that Peter
is in
the lead.
? replicate
So again, any thoughts on how to do this without for loops and
"pushing?"
Thanks for the help. Great list.
David Arnold
--
David Winsemius, MD
Alameda, CA, USA
______________________________________________
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.