如何在R语言中按指定列索引对二维数组进行切片?
R语言提取指定列的矩阵操作方法
假设我们有如下二维矩阵:
A <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3, byrow = TRUE)
运行后得到的矩阵和你给出的一致:
[,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9
要提取指定列(比如你说的第0列和第2列,对应R里的第1列和第3列——因为R的索引是从1开始的),可以用类似Python的索引语法,只需要注意索引起始值的差异:
直接用1基索引提取
# 提取第1列和第3列 new_matrix <- A[, c(1, 3)]
从0基索引转换后提取
如果你习惯Python的0基索引,可以先把给定的索引加1再提取:
i <- c(0, 2) new_matrix <- A[, i + 1]
两种方法运行后都会得到目标矩阵:
[,1] [,2] [1,] 1 3 [2,] 4 6 [3,] 7 9
核心逻辑:R中矩阵的索引格式为矩阵名[行索引, 列索引],逗号左侧控制行、右侧控制列,逻辑和Python一致,但R的索引起始值为1,这是二者的关键差异。
内容的提问来源于stack exchange,提问作者user22094125
相关产品推荐
相关产品推荐

