交叉制表以在交叉表正文中包含另外 2 个变量

问题描述 投票:0回答:1

考虑这些数据:

     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 pivot-table
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.