I've created a data-frame of all the possible outcomes from a dice throw as 2x36 dataframe.
d1 d2
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1
6 6 1
7 1 2
8 2 2
9 3 2
10 4 2
11 5 2
12 6 2
13 1 3
14 2 3
15 3 3
16 4 3
17 5 3
18 6 3
19 1 4
20 2 4
21 3 4
22 4 4
23 5 4
24 6 4
25 1 5
26 2 5
27 3 5
28 4 5
29 5 5
30 6 5
31 1 6
32 2 6
33 3 6
34 4 6
35 5 6
36 6 6
To make this visually more pleasing I want to re-organise it as a 6x6 table.
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] "1 1" "1 2" "1 3" "1 4" "1 5" "1 6"
[2,] "2 1" "2 2" "2 3" "2 4" "2 5" "2 6"
[3,] "3 1" "3 2" "3 3" "3 4" "3 5" "3 6"
[4,] "4 1" "4 2" "4 3" "4 4" "4 5" "4 6"
[5,] "5 1" "5 2" "5 3" "5 4" "5 5" "5 6"
[6,] "6 1" "6 2" "6 3" "6 4" "6 5" "6 6"
How would I achieve this?
Here is a base R alternative using
lapply
andapply
We can
paste
the columns and usematrix
specifying the dimensionsIf there are only two columns, we can also
paste
by subsetting the columns individuallyIf you need a
dcast/acast
approach, create another column bypaste
ing the columns of 'df1' and then do theacast
.Or a similar option using
spread
fromtidyr
But, this can be created directly using
outer
data