I'll hope this isn't homework (R-help has a "don't do people's homework
for them" convention), and make a few suggestions.

The inner loop is not needed. For example, you can replace

for (i in 1:15 ) {


Inv1Outcome[i] = if (random[i] <= .25){Inv1Returns[1]}
  else if (random[i] > .25 & random[i] <= .50){Inv1Returns[2]}
  else if (random[i] > .50 & random[i] <= .75){Inv1Returns[3]}
  else {Inv1Returns[4]}

}


with

 
Inv1Outcome <- rep(Inv1Returns[1],15]

Inv1Outcome[random > 0.25 & random <= 0.50] <- Inv1Returns[2]
Inv1Outcome[random > 0.50 & random <= 0.75] <- Inv1Returns[3]
Inv1Outcome[random > 0.75]                  <- Inv1Returns[4]

And similarly for the other two outcomes.

For that matter, if I interpret correctly what's going on, this might do
it:

Inv1Outcome <- sample(Inv1Returns, 15, replace=TRUE, prob=c(0.25, 0.25,
0.25, 0.25)



I don't think I understand what you're trying to do with the outer loop,
but it does occur to me that with 'random' defined outside both loops, the
inner loop will have exactly the same results all four times, and does
that make any sense? Try putting
  random = runif(15, 0, 1)
inside the outer loop but outside the inner loop.

-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062





On 12/3/15, 2:42 PM, "R-help on behalf of Vermilio, Ryan"
<r-help-boun...@r-project.org on behalf of ryan.vermi...@ucdenver.edu>
wrote:

>Hello there,
>
>I'm an R novice and am trying to figure out how to create an external for
>loop.  My current loop iterates 15 times and stores the resulting values
>in 3 separate vectors.  What I need is to create an outside loop that
>will run internal loop 4 times, sum the resulting vectors for each, and
>then store the sum of each in a vector of length 4 for each investment.
>
>Right now, the target vector has the same value in each position, which
>is what I'm trying to fix.
>
>Here's what I have at this point:
>
>Inv1Returns <- c(0, 1000, -500, 500)
>Inv2Returns <- c(0, -9000, 30000, 10000)
>Inv3Returns <- c(0, 4000, -1000, -2000)
>
>random = runif(15, 0, 1)
>
>Inv1Outcome = NULL
>Inv2Outcome = NULL
>Inv3Outcome = NULL
>
>Inv1Total = NULL
>Inv2Total = NULL
>Inv3Total = NULL
>
>for (j in 1:4)
>
>{
>
>for (i in 1:15 )
>
>{
>
>  Inv1Outcome[i] = if (random[i] <= .25){Inv1Returns[1]}
>  else if (random[i] > .25 & random[i] <= .50){Inv1Returns[2]}
>  else if (random[i] > .50 & random[i] <= .75){Inv1Returns[3]}
>  else {Inv1Returns[4]}
>
>  Inv2Outcome[i] = if (random[i] <= .20){Inv2Returns[1]}
>  else if (random[i] > .20 & random[i] <= .30){Inv2Returns[2]}
>  else if (random[i] > .30 & random[i] <= .70){Inv2Returns[3]}
>  else {Inv2Returns[4]}
>
>  Inv3Outcome[i] = if (random[i] <= .50){Inv3Returns[1]}
>  else if (random[i] > .50 & random[i] <= .70){Inv3Returns[2]}
>  else if (random[i] > .70 & random[i] <= .90){Inv3Returns[3]}
>  else {Inv3Returns[4]}
>
>}
>
>Inv1Total = append(Inv1Total, sum(Inv1Outcome))
>Inv2Total = append(Inv2Total, sum(Inv2Outcome))
>Inv3Total = append(Inv3Total, sum(Inv3Outcome))
>
>}
>
>Inv1Total
>Inv2Total
>Inv3Total
>
>
>Sincerely,
>
>Ryan
>
>       [[alternative HTML version deleted]]
>
>______________________________________________
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>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 -- To UNSUBSCRIBE and more, see
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