Hello, I'm having trouble running the code, where does function dice come from? CRAN package dice only has two functions, getEventProb getSumProbs not a function dice. Can you post a link to where the package/function can be found? Rui Barradas ?s 02:00 de 24/04/2022, Paul Bernal escreveu:> 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]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
1) Does it run perfectly with num_tirals_6 <- 100 ? 2) Rework the code to remove as much as possible from loops. Renaming column names each time through the loop seems pointless. Is the nested for loops converting the dice roll to person name necessary within the while loop? 3) Stop all other apps on the computer. 4) Consider rewriting to take advantage of multiple cores in your system in parallel processing (this might or might not help much). 5) Rerun with num_trials_6 set to different values 10, 100, 1000, and 10000. Linear regression with run time and trial size should let you estimate run time for 1 million. Tim -----Original Message----- From: R-help <r-help-bounces at r-project.org> On Behalf Of Rui Barradas Sent: Sunday, April 24, 2022 5:44 AM To: Paul Bernal <paulbernal07 at gmail.com>; R <r-help at r-project.org> Subject: Re: [R] R Code Execution taking forever [External Email] Hello, I'm having trouble running the code, where does function dice come from? CRAN package dice only has two functions, getEventProb getSumProbs not a function dice. Can you post a link to where the package/function can be found? Rui Barradas ?s 02:00 de 24/04/2022, Paul Bernal escreveu:> 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","D > ec") > > > #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]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mail > man_listinfo_r-2Dhelp&d=DwIDaQ&c=sJ6xIWYx-zLMB3EPkvcnVg&r=9PEhQh2kVeAs > Rzsn7AkP-g&m=wM6IILK-62Cb0r02bfEW05eVb0lndtvSWfuz7gHTlutarVXWwMYm2ucHQ > 8zpRTow&s=il9X1N5C_yJqnTaXdQFBZFkG2En_jhiejElnzL__WdA&e> PLEASE do read the posting guide > urldefense.proofpoint.com/v2/url?u=http-3A__www.R-2Dproject.or > g_posting-2Dguide.html&d=DwIDaQ&c=sJ6xIWYx-zLMB3EPkvcnVg&r=9PEhQh2kVeA > sRzsn7AkP-g&m=wM6IILK-62Cb0r02bfEW05eVb0lndtvSWfuz7gHTlutarVXWwMYm2ucH > Q8zpRTow&s=027mAUgUIZGXPwemk-9LCBL8uREpR8MMkM5-4Hf4y5w&e> and provide commented, minimal, self-contained, reproducible code.______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Dhelp&d=DwIDaQ&c=sJ6xIWYx-zLMB3EPkvcnVg&r=9PEhQh2kVeAsRzsn7AkP-g&m=wM6IILK-62Cb0r02bfEW05eVb0lndtvSWfuz7gHTlutarVXWwMYm2ucHQ8zpRTow&s=il9X1N5C_yJqnTaXdQFBZFkG2En_jhiejElnzL__WdA&ePLEASE do read the posting guide urldefense.proofpoint.com/v2/url?u=http-3A__www.R-2Dproject.org_posting-2Dguide.html&d=DwIDaQ&c=sJ6xIWYx-zLMB3EPkvcnVg&r=9PEhQh2kVeAsRzsn7AkP-g&m=wM6IILK-62Cb0r02bfEW05eVb0lndtvSWfuz7gHTlutarVXWwMYm2ucHQ8zpRTow&s=027mAUgUIZGXPwemk-9LCBL8uREpR8MMkM5-4Hf4y5w&eand provide commented, minimal, self-contained, reproducible code.