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

如何向量化选取矩阵中可重复的列?R语言示例

解决方法:用R的矩阵索引快速生成目标矩阵X

这个需求在R里其实非常好实现,用矩阵的索引特性就能直接搞定,我给你一步步演示:

首先先重现你给出的示例数据:

# 定义索引向量Z
Z <- c(1, 3, 1, 2)
# 定义原始矩阵L
L <- matrix(c(73,50,4,14,87,5,34,51,17,57,47,65), nrow=4)

要生成维度为n×p的矩阵X,只需要用Z作为矩阵L的列索引来选取列就可以了:

X <- L[, Z]

运行后查看X的结果,完全符合你的预期:

> X
     [,1] [,2] [,3] [,4]
[1,]   73   17   73   87
[2,]   50   57   50    5
[3,]    4   47    4   34
[4,]   14   65   14   51

原理说明

  • R中的矩阵支持用整数向量作为索引,L[, Z]表示选取L的所有行(,前面空着代表选全部行),然后按照Z里的顺序选取对应的列。
  • 如果Z里有重复的索引(比如示例里的1出现了两次),就会重复选取L的对应列,完美实现你要的聚合效果。
  • 注意:Z里的元素必须是有效的列索引(范围是1到L的列数k),否则会出现索引越界的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:07:27