数据包含两个变量: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")
答案 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