将2x36数据帧重组为6x6数据帧。掷骰子可视化 [英] Reorganise 2x36 dataframe to a 6x6 dataframe. Dice throw visualisation

查看:122
本文介绍了将2x36数据帧重组为6x6数据帧。掷骰子可视化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个骰子掷出的所有可能结果的数据框,为2x36数据框。

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

为了使外观更美观,我想将其重新组织成6x6的桌子。

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"

我将如何实现呢?

推荐答案

这是使用 lapply 应用

out =  do.call(rbind,
                lapply(split(data, data$d2),function(x) 
                apply(x, 1, function(y) paste(y['d2'], y['d1'], collapse = ' '))
               )
#>out                
#     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"

这篇关于将2x36数据帧重组为6x6数据帧。掷骰子可视化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆