将数据框重塑为宽大的形状

时间:2015-12-14 19:36:04

标签: r

数据包含两个变量:id和grade。每个id可以有多个记录 每个年级。

dat <- data.frame(id = c(1,1,1,2,2,2,2,3,3,4,5,5,5),
                  grade = c("a", "b", "c", "a", "a", "b", "b", "d", "f", "c", "a", "e", "f"))

我想将数据重新整形为一个宽大的形状,这样每个id只有一条记录 每个独特的等级成为一个列。每列的值为0或1, 取决于每个身份证的等级。

最终数据集如下:

id  a   b   c   d   e   f
1   1   1   1   0   0   0
2   1   1   0   0   0   0
3   0   0   0   1   0   1
4   0   0   1   0   0   0
5   1   0   0   0   1   1

我试过了,但没有运气。

  n.dat <- reshape(dat, timevar = "grade",idvar = c("id"),direction = "wide") 

1 个答案:

答案 0 :(得分:6)

您可以简单#container { display: flex; width: 100%; flex-direction: row; justify-content: center; max-width: 1200px; margin: 0 auto; } .square { display: flex; flex: 1 0 auto; margin: 10px; border: 10px solid blue; justify-content: center; align-items: center; color: #111111; font-size: 1.7rem; height: auto; text-align: center; vertical-align: middle; } .square:before { content:''; padding-top:100%; } 这些值,然后根据table条件转换为逻辑,然后使用> 0一元运算符转换回数字(或者如果您想要更少的高尔夫,请按只需+

+ 0