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]]
HI Paul, I had a problem a bit like this when trying to implement the Lim-Wolfe imputation for ranks. The size of the output matrix increases exponentially with the size of the initial matrix and it goes into disk-swapping slow motion. It works for small matrices, but rapidly runs out of memory. I have planned to insert code to only retain the largest maximum to fix this. If I get to it, I'll post the result. Jim On Sun, Apr 24, 2022 at 11:01 AM Paul Bernal <paulbernal07 at gmail.com> wrote:> > 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 > 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.
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 > 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.