R:使用两个 id 列和 value 列创建一个矩阵

R: creating a matrix using two id columns and the value column

目的

我正在尝试使用两个 ID 列 (period1period2) 和每个 ID 组合的值列 (p) 创建一个矩阵。它们是 t 检验的结果。我想制作一个方阵来显示每个 id 组合的 p 值,类似于相关矩阵。

示例数据

  t <-
  structure(list(period1 = c("(1) Start (178)", "(1) Start (178)", 
    "(1) Start (178)", "(1) Start (178)", "(2) Mature (217)", "(2) Mature (217)", 
    "(2) Mature (217)", "(3) COVID hit (117)", "(3) COVID hit (117)", 
    "(4) After COVID (79)"), period2 = c("(2) Mature (178)", "(3) COVID hit (178)", 
    "(4) After COVID (178)", "(5) Closing (178)", "(3) COVID hit (217)", 
    "(4) After COVID (217)", "(5) Closing (217)", "(4) After COVID (117)", 
    "(5) Closing (117)", "(5) Closing (79)"), p = c("0.0000 (****)", 
    "0.0000 (****)", "0.0000 (****)", "0.0055 (**)", "0.0003 (***)", 
    "0.0727 (ns)", "0.0000 (****)", "0.2050 (ns)", "0.0000 (****)", 
    "0.0000 (****)")), row.names = c(NA, -10L), class = "data.frame")

可能我们需要重塑为 'wide' 格式

library(tidyr)
library(tibble)
library(dplyr)
t %>% 
   pivot_wider(names_from = period2, values_from = p) %>% 
   column_to_rownames('period1')