首页 > 解决方案 > R:使用两个 id 列和 value 列创建矩阵

问题描述

目的

我正在尝试为每个 id 组合使用两个 id 列 ( period1, period2) 和值列 ( 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")

标签: rmatrixt-test

解决方案


也许我们需要重塑为“宽”格式

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

推荐阅读