[R] R Code Execution taking forever

Paul Bernal p@u|bern@|07 @end|ng |rom gm@||@com
Sun Apr 24 03:00:52 CEST 2022


Dear R friends,

Hope you are doing great. The reason why I am contacting you all, is
because the code I am sharing with you takes forever. It started running at
2:00 AM today, and it's 7:52 PM and is still running (see code at the end
of this mail).

I am using Rx64  4.1.2, and the code is being executed in RStudio. The
RStudio version I am currently using is Version 2022.02.0 Build 443
"Prairie Trillium" Release (9f796939, 2022-02-16) for Windows.

My PC specs:
Processor: Intel(R) Core(TM) i5-10310U CPU @ 1.70 GHz
Installed RAM: 16.0 GB (15.6 GB usable)
System type: 64-bit operating system, x64-based processor
Local Disc(C:) Free Space: 274 GB

I am wondering if there is/are a set of system variable(s) or something I
could do to improve the performance of the program.

It is really odd this code has taken this much (and it is still running).

Any help and/or guidance would be greatly appreciated.

Best regards,
Paul




#performing 1,000,000 simulations 10 times
num_trials_6 = 1000000
dice_rolls_6 = num_trials_6*12
num_dice_6 = 1
dice_sides_6 = 6

prob_frame_6 <- data.frame(matrix(ncol = 10, nrow = 1))

k <- 0
while(k < 10){
  dice_simul_6 = data.frame(dice(rolls = dice_rolls_6, ndice = num_dice_6,
sides = dice_sides_6, plot.it = FALSE))

  #constructing matrix containing results of all dice rolls by month
  prob_matrix_6 <- data.frame(matrix(dice_simul_6[,1], ncol = 12, byrow =
TRUE))

  #naming each column by it's corresponding month name
  colnames(prob_matrix_6) <-
c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")


  #assigning each person´s name depending on the number showed in the dice
once rolled
  for (i in 1:nrow(prob_matrix_6)){
    for (j in 1:ncol(prob_matrix_6)){
      if (prob_matrix_6[i,j] == 1){
        prob_matrix_6[i,j] = "Alice"
      }
      if (prob_matrix_6[i,j] == 2){
        prob_matrix_6[i,j] = "Bob"
      }
      if (prob_matrix_6[i,j] == 3){
        prob_matrix_6[i,j] = "Charlie"
      }
      if (prob_matrix_6[i,j] == 4){
        prob_matrix_6[i,j] = "Don"
      }
      if (prob_matrix_6[i,j] == 5){
        prob_matrix_6[i,j] = "Ellen"
      }
      if (prob_matrix_6[i,j] == 6){
        prob_matrix_6[i,j] = "Fred"
      }

    }
  }

  #calculating column  which will have a 1 if trial was successful and a 0
otherwise
  prob_matrix_6['success'] <- for (i in 1:nrow(prob_matrix_6)){
    if (("Alice" %in% prob_matrix_6[i,]) & ("Bob" %in% prob_matrix_6[i,]) &
("Charlie" %in% prob_matrix_6[i,]) & ("Don" %in% prob_matrix_6[i,]) &
("Ellen" %in% prob_matrix_6[i,]) & ("Fred" %in% prob_matrix_6[i,])){
      prob_matrix_6[i,13] = 1
    }else{
      prob_matrix_6[i,13] = 0
    }
  }

  #relabeling column v13 so that its new name is success
  colnames(prob_matrix_6)[13] <- "success"


  #calculating probability of success

  p6 = sum(prob_matrix_6$success)/nrow(prob_matrix_6)
  prob_frame_6 <- cbind(prob_frame_6, p6)

  k = k + 1

}

prob_frame_6 <- prob_frame_6[11:20]
colnames(prob_frame_6) <-
c("p1","p2","p3","p4","p5","p6","p7","p8","p9","p10")
average_prob_frame_6 <- rowMeans(prob_frame_6)
trial_1000000_10_frame <- cbind(prob_frame_6, average_prob_frame_6)
final_frame_6 <- trial_1000000_10_frame
colnames(final_frame_6) <-
c("p1","p2","p3","p4","p5","p6","p7","p8","p9","p10", "avg_prob_frame_5")

write.csv(final_frame_6, "OneMillion_Trials_Ten_Times_Results.csv")
print(final_frame_6)
print(paste("The average probability of success when doing 1,000,000 trials
10 times is:", average_prob_frame_6))

	[[alternative HTML version deleted]]



More information about the R-help mailing list