【发布时间】:2018-08-14 18:55:28
【问题描述】:
说有
input=c(1,2)
mat=matrix(1:9,ncol=3)
如何将输入向量转换成可以调用的形式
mat[input]
并接收矩阵的 mat[1,2] 元素?我问是因为我想编辑长度为 n 的数组的元素。
【问题讨论】:
说有
input=c(1,2)
mat=matrix(1:9,ncol=3)
如何将输入向量转换成可以调用的形式
mat[input]
并接收矩阵的 mat[1,2] 元素?我问是因为我想编辑长度为 n 的数组的元素。
【问题讨论】:
mat[t(input)]
Chambers 的书数据分析软件列出了 4 种方法来对矩阵进行子集化(即提取元素)。方法 #2 是上面发布的问题的答案。我将通过一个简短的示例发布钱伯斯的 4 种方式中的每一种。对于示例,我们将使用矩阵 m 并提取位于 (4,1) 和 (6,2) 位置的元素,它们的值分别为 104 和 116。
m <- matrix(101:120, ncol=2)
1.分别索引列和行:
m[4,1]
m[6,2]
2. 使用 2 列矩阵作为单个索引参数
k <- rbind(c(4,1), c(6,2))
m[k]
3.使用逻辑表达式
m[1:10 == 4, 1:2 == 1]
m[1:10 == 6, 1:2 == 2]
#or
m[1:20 %in% c(4,16)]
4.使用向量子集,因为矩阵只是按列包装的向量
m[c(4,16)]
这是钱伯斯书页 201--202 的屏幕截图:
【讨论】: