考虑这些数据:
y b1 b2 M
1 143 1 1 B
2 152 2 1 D
3 199 3 1 A
4 155 4 1 C
5 161 1 2 D
6 166 2 2 B
7 198 3 2 C
8 195 4 2 A
9 193 1 3 A
10 154 2 3 C
11 151 3 3 B
12 150 4 3 D
13 160 1 4 C
14 176 2 4 A
15 159 3 4 D
16 120 4 4 B
我想按 b1 和 b2 交叉制表。表格中的每个单元格应包含 M 和 y 的组合,如下所示:
b2
1 2 3 4
1 B 143 D 161 A 193 C 160
b1 2 D 152 B 166 C 154 A 176
3 A 199 C 198 B 151 D 159
4 C 155 A 195 D 150 B 120
(我是手工做的,希望不会有错误!)
R 中有行代码可以做到这一点吗?
R 不接受多重索引。获得接近问题的最佳方法是使用
reshape
:
reshape(df, v.names=c("M", "y"), timevar = "b2", dir="wide", idvar = "b1", sep="_")
b1 M_1 y_1 M_2 y_2 M_3 y_3 M_4 y_4
1 1 B 143 D 161 A 193 C 160
2 2 D 152 B 166 C 154 A 176
3 3 A 199 C 198 B 151 D 159
4 4 C 155 A 195 D 150 B 120