R中的矩阵重排

R中的矩阵重排,r,sorting,R,Sorting,我有一个矩阵,我想用另一种方式来排序 我得到的是这个矩阵: 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

我有一个矩阵,我想用另一种方式来排序

我得到的是这个矩阵:

           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
我想要的是这个矩阵:

           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
有人知道如何重新排列数据,使其看起来像在第二个块中吗?

使用“分离”来分离列,然后使用“更宽的透视”来分散数据

df <- read.table(text = "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", header = TRUE)

library(dplyr)
library(tidyr)
df %>% separate(item, into = c("item", "Cat"), sep = "_") %>%
  pivot_wider(names_from = Cat, values_from = est)

# A tibble: 4 x 5
  item   Cat1  Cat2  Cat3  Cat4
  <chr> <dbl> <dbl> <dbl> <dbl>
1 KT001 -0.85  0.04  0.34  0.97
2 KT002 -0.81 -0.6   0.65 NA   
3 KT003 -0.4  -0.19  0.56 NA   
4 KT004 -1.21 NA    NA    NA   
我们可以使用R基地的XTAB

-输出

#   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
data.table选项

精彩的阅读。餐桌之路!