Вы можете сделать это с помощью функции reshape()
или с функциями melt()
/ cast()
в пакете reshape. Для второго варианта пример кода:
library(reshape)
cast(dat1, name ~ numbers)
Или с помощью reshape2
library(reshape2)
dcast(dat1, name ~ numbers)
Ваши кадры есть. В нижних трех кадрах меньше вещей, и вы не дали им отступов. Рамка сжимается, чтобы соответствовать, поэтому, когда у вас есть только один элемент, вы не увидите рамок.
Вы можете легко увидеть кадры, если сделаете одну из двух вещей:
Сначала вы можете запросить, чтобы кадры заполняли родительское окно в направлении x. Когда вы сделаете это, вы увидите их:
fileFrame.pack(fill="x")
attributeFrame.pack(fill="x")
constraintFrame.pack(fill="x")
preferenceFrame.pack(fill="x")
Во-вторых, вместо или в дополнение к этому, вы можете дать отступ вокруг меток в нижних кадрах. Это позволит цветам рамки появляться.
label_Attribute_header.pack(padx=20, pady=20)
...
label_Constraint_header.pack(padx=20, pady=20)
...
label_Preference_header.pack(padx=20, pady=20)