You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在保留行名的前提下将R语言矩阵拆分为列表?

问题

我有一个带有行名的矩阵,代码如下:

mat1.data <- c(1,2,3,4,5,6)
mat1 <- matrix(mat1.data,nrow=3,ncol=2,byrow=TRUE)
rownames(mat1) <- c("a", "b", "c")
colnames(mat1) <- c("t1", "t2")

期望得到的结果如下:

$t1
a b c     #需要保留行名
1 3 5

$t2
a b c
2 4 6

请问该如何实现?

解决方案

方法一:转数据框再转列表

这是最简洁的实现方式,先将矩阵转置,再转为数据框,最后直接转为列表,会自动保留行名和列名作为列表的元素名称:

result <- as.list(as.data.frame(t(mat1)))

运行后输出结果:

$t1
a b c 
1 3 5 

$t2
a b c 
2 4 6 

方法二:用apply按列处理

如果需要更灵活的自定义操作,可以用apply遍历矩阵的每一列,手动为每个列向量添加行名,再转为列表:

# 按列遍历矩阵,为每个列向量设置行名
col_list <- apply(mat1, 2, function(col) {
  names(col) <- rownames(mat1)
  col
})
# 将结果转为列表
result <- as.list(col_list)

该方法同样能得到你想要的格式。

内容的提问来源于stack exchange,提问作者cliu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:10:36