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

如何在R中切片矩阵并将结果列向量保留为真实列向量?

R矩阵切片保留矩阵结构的方法

问题场景

定义如下矩阵:

b <- cbind(matrix(c(1, 0, 0), nrow = 3), 
           matrix(c(0, 0, 0), nrow = 3), 
           matrix(c(2, 0, 1), nrow = 3))

矩阵b的输出为:

[,1] [,2] [,3]
[1,]    1    0    2
[2,]    0    0    0
[3,]    0    0    1

当执行切片操作b[seq(3), c(3)]时,得到的是一个向量[1] 2 0 1,但需要保留矩阵结构,即输出:

[,1]
[1,]    2
[2,]    0
[3,]    1

解决方法

  • 使用drop=FALSE参数(推荐):在切片时添加该参数,强制保留矩阵维度
    b[seq(3), c(3), drop=FALSE]
    
    若要取所有行,可简化为:
    b[, 3, drop=FALSE]
    
  • 用matrix()转换向量:将切片得到的向量重新构造为矩阵
    matrix(b[seq(3), c(3)], ncol = 1)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:45:25