首页 > 解决方案 > 在R中重新排列矩阵

问题描述

我有一个矩阵,我想以不同的方式订购它。

我所拥有的是这个矩阵:

           item    est
1   KT001_Cat1  -0.85
2   KT001_Cat2   0.04
3   KT001_Cat3   0.34
4   KT001_Cat4   0.97
5   KT002_Cat1  -0.81
6   KT002_Cat2  -0.60
7   KT002_Cat3   0.65
8   KT003_Cat1  -0.40
9   KT003_Cat2  -0.19
10  KT003_Cat3   0.56
11  KT004_Cat1  -1.21

我想要的是这个矩阵:

     item    est.1  est.2  est.3  est.4
1   KT001    -0.85   0.04   0.34   0.97
2   KT002    -0.81  -0.60   0.65   NA
3   KT003    -0.40  -0.19   0.56   NA
4   KT004    -1.21   NA     NA     NA

有谁知道我如何重新排列我的数据,使其看起来像第二个块?

标签: rsorting

解决方案


我们可以xtabs使用base R

xtabs(df$est ~ V1 + V2, read.table(text = df$item, header = FALSE, sep="_"))

-输出

#   V2
#V1       Cat1  Cat2  Cat3  Cat4
#  KT001 -0.85  0.04  0.34  0.97
#  KT002 -0.81 -0.60  0.65  0.00
#  KT003 -0.40 -0.19  0.56  0.00
#  KT004 -1.21  0.00  0.00  0.00

推荐阅读