将向量转换为矩阵/数组的输入

时间:2018-08-14 18:55:28

标签: arrays r matrix

说一个拥有

input=c(1,2)
mat=matrix(1:9,ncol=3)

人们如何将输入向量转换为一种可以调用的形式

mat[input]

并接收矩阵的mat [1,2]元素?我问是因为我要编辑长度为n的数组的元素。

1 个答案:

答案 0 :(得分:2)

简短答案:

mat[t(input)]

说明:

Chambers的书用于数据分析的软件列出了4种对矩阵进行子集(即,提取其元素)的方法。方法2是上述问题的答案。我将以一个简短的示例发布Chambers的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的屏幕截图:

Chambers Book pages 201-202