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.

Reply via email to