I believe I gave you sufficient information (the vector of dice roll
results would replace 1:36 in my example). Furthermore, this sounds
like homework, which we try not to do here. But even if it is not, I
expect you to fill in the details based on what I have provided. If I
have misunderstood your query, I am sorry: I am too lazy to go through
your long explanation. If I have understood correctly, perhaps others
will be kinder and provide you the missing details that I did not.


Bert Gunter

On Wed, Apr 20, 2022 at 9:02 PM Paul Bernal <paulberna...@gmail.com> wrote:
>
> Dear friend Bert,
>
> Thank you so much for your kind reply. The first thing I need to do is to 
> simulate dice rolls, say 120 times.
>
> I want to populate an m by 12 dataframe with the results of each dice roll. 
> For example, the result from dice roll #1 would need to go on row 1, column1, 
> the result from dice roll #2 would have to go in row 1 column 2, and so on.
>
> The reason why I want to store those results in a dataframe is to be able to 
> perform some other calculations afterwards.
>
> This is for a project I am doing.
>
> So this is the situation:
> You and five friends – a total of six people – plan to meet once per month to 
> have dinner together, with one of you choosing the restaurant each month. 
> Rather than scheduling the entire year in advance, you decide to make it 
> interesting: each month a single six-sided die will be rolled to determine 
> which of you gets to choose the restaurant that month. How likely is it that 
> everyone will have a chance to eat at their own favorite restaurant? That is, 
> what is the probability p that over the next 12 months, each of you will have 
> had at least one opportunity to choose where to eat?
>
> This is what I am asked to do:
> Write a program to estimate the desired probability p via simulation. The 
> program should input a sequence of positive integer number of trials to 
> simulate using the language's pseudorandom number generator and calculate the 
> corresponding fractions of simulated trials that are “successful" (i.e., all 
> 6 parties get at least one opportunity to choose where to eat. Alice, Bob, 
> Charley, Fred, Ellen, Don, Don, Don, Don, Alice, Charley, Bob is a successful 
> trial. Alice, Bob, Charley, Ellen, Don, Don, Don, Don, Ellen, Alice, Charley, 
> Bob is not a successful trial since Fred does not get to choose.)
> Turn in a set of 10 trials showing each roll of the dice to show correctness. 
> Label the out-comes. Keep in mind that a single trial requires rolling the 
> die twelve times. Calculate and print the average probability p for the set. 
> Please refer to your friends by name.
>
> For this reason, I am trying to simulate the n trials, and then populate a 
> table with the results from the trials. I have to simulate a dice roll dice 
> for each month and for each row. Rows would be equivalent to years, and then 
> columns would be equivalent to the month of a particular year.
>
> Once I store the results in a dataframe, everything is much easier.
>
> I installed package dice and performed simulations by doing:
> #declaring variables:
> #1)dice_rolls which is the number of times the dice will be rolled
> #2)num_dice which is the number of dice that will be rolled each time
> #3)dice_sides which is the number of sides of the dice
> #function dice will take each one of these variables as its parameter to 
> perform the simulation
> dice_rolls = 120
> num_dice   = 1
> dice_sides = 6
>
> #performing simulation
> dice_simul = dice(rolls = dice_rolls, ndice = num_dice, sides = dice_sides, 
> plot.it = TRUE)
>
> I tried the following, but did not work as expected:
>
> for (i in 1:nrow(dice_simul)){
>   for(j in 1:ncol(prob_frame)){
>     for(k in 1:nrow(prob_frame)){
>       prob_frame[k,j] = dice_simul[i,1]
>     }
>   }
> }
>
> I apologize for the long explanation.
>
> Best regards,
>
> Paul
>
>
> El mié, 20 abr 2022 a las 22:47, Bert Gunter (<bgunter.4...@gmail.com>) 
> escribió:
>>
>> If I understand you correctly, it's simple.
>> Matrices in R are vectors with a dimension attribute. By default, they
>> are populated column by column. Use 'byrow = TRUE to populate by row
>> instead. For example:
>>
>> > matrix (1:36, ncol = 12, byrow = TRUE)
>>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
>> [1,]    1    2    3    4    5    6    7    8    9    10    11    12
>> [2,]   13   14   15   16   17   18   19   20   21    22    23    24
>> [3,]   25   26   27   28   29   30   31   32   33    34    35    36
>>
>> I leave it to you to use the 'dimnames' argument of ?matrix  to give
>> names to the column and then subsequently convert to a data frame if
>> you like.
>>
>> Bert Gunter
>>
>> "The trouble with having an open mind is that people keep coming along
>> and sticking things into it."
>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>
>> On Wed, Apr 20, 2022 at 8:38 PM Paul Bernal <paulberna...@gmail.com> wrote:
>> >
>> > Dear friends,
>> >
>> > Hope you are doing well. I need to simulate a 1 dice roll for each one of
>> > the twelve months of the year and perform 100 trials, so I thought of
>> > constructing a dataframe with twelve columns and 100 rows the following 
>> > way:
>> >
>> > num_rows = 100
>> >
>> > prob_frame <- data.frame(matrix(NA, nrow = num_rows, ncol = 12))
>> > colnames(prob_frame)<-c("January","February","March","April","May","June","July","August","September","October","November","December")
>> >
>> > Now, using the dice package, I can simulate n number of dice rolls as
>> > follows:
>> > #performing simulation
>> > dice_simul = dice(rolls = dice_rolls, ndice = num_dice, sides = dice_sides,
>> > plot.it = TRUE)
>> >
>> > What I would like to do is to populate each column and row with the results
>> > of dice_simul.
>> >
>> > Let me show you the structure of dice_simul:
>> > > str(dice_simul)
>> > Classes ‘dice’ and 'data.frame': 100 obs. of  1 variable:
>> >  $ Red: int  2 2 1 2 5 4 4 6 1 4 ...
>> > > dput(dice_simul)
>> > structure(list(Red = c(2L, 2L, 1L, 2L, 5L, 4L, 4L, 6L, 1L, 4L,
>> > 4L, 2L, 6L, 2L, 2L, 1L, 3L, 6L, 1L, 5L, 5L, 5L, 3L, 4L, 2L, 6L,
>> > 4L, 6L, 6L, 2L, 1L, 2L, 2L, 6L, 4L, 2L, 3L, 5L, 6L, 6L, 4L, 5L,
>> > 4L, 6L, 6L, 3L, 4L, 1L, 5L, 3L, 3L, 5L, 3L, 4L, 1L, 3L, 3L, 2L,
>> > 4L, 1L, 2L, 1L, 6L, 3L, 5L, 5L, 3L, 4L, 4L, 5L, 4L, 1L, 5L, 3L,
>> > 4L, 4L, 3L, 6L, 5L, 2L, 4L, 1L, 1L, 6L, 4L, 3L, 6L, 5L, 6L, 2L,
>> > 6L, 1L, 6L, 6L, 4L, 3L, 4L, 2L, 1L, 5L)), class = c("dice", "data.frame"
>> > ), row.names = c(NA, -100L))
>> >
>> > For example, the first number of dice_simul should go to row 1 for January,
>> > the second number of dice_simul should go to row 1 for February, ... the
>> > twelveth number of dice_simul should go to row 1 for December, the 13th
>> > number should go to row 2 for january, and so on.
>> >
>> > This is what I tried to do but doesn´t work they way I want to:
>> >
>> > #1)dice_rolls which is the number of times the dice will be rolled
>> > #2)num_dice which is the number of dice that will be rolled each time
>> > #3)dice_sides which is the number of sides of the dice
>> > #function dice will take each one of these variables as its parameter to
>> > perform the simulation
>> > dice_rolls = 100
>> > num_dice   = 1
>> > dice_sides = 6
>> >
>> > #performing simulation
>> > dice_simul = dice(rolls = dice_rolls, ndice = num_dice, sides = dice_sides,
>> > plot.it = TRUE)
>> >
>> > num_rows = 100
>> >
>> > prob_frame <- data.frame(matrix(NA, nrow = num_rows, ncol = 12))
>> > colnames(prob_frame) <-
>> > c("January","February","March","April","May","June","July","August","September","October","November","December")
>> >
>> >
>> > for (j in 1:12){
>> >   for (i in 1:num_rows){
>> >     prob_frame[i,j]=dice_simul[i,1]
>> >   }
>> > }
>> > I basically want to populate the twelve months for the first row, then the
>> > twelve months for the second row, and so on, until I get to populate the
>> > twelve months for the last row sequentially.
>> >
>> > How could I accomplish this?
>> >
>> > Any help and/or guidance will be greatly appreciated.
>> >
>> > Best regards,
>> > Paul
>> >
>> >         [[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