在R语言中如何将matrix转换为指定结构的tibble
你可以通过以下两种常用方式实现转换,先构造示例矩阵:
# 构造目标矩阵 mat <- matrix(1:3, nrow = 3, dimnames = list(c("X","Y","Z"), c("A")))
方法1:使用tidyverse套件(兼容性更强,多列矩阵也可直接复用)
library(tidyverse) result <- mat %>% # 把矩阵转为tibble,同时将行名存储到group1列 as_tibble(rownames = "group1") %>% # 把除group1外的所有列转为长格式,列名存入group2,对应值存入value pivot_longer(cols = -group1, names_to = "group2", values_to = "value")
方法2:轻量实现(仅依赖tibble包,用base R逻辑构造)
library(tibble) result <- tibble( group1 = rownames(mat), group2 = rep(colnames(mat), each = nrow(mat)), value = as.vector(mat) )
两种方法输出的结果都和你给出的目标tibble完全一致。
内容的提问来源于stack exchange,提问作者Erdem Erikçi
相关产品推荐
相关产品推荐

