使用矢量组合选择子阵列

时间:2018-02-01 15:36:16

标签: r vector

以下语句构成一个数组:

x = array(data = 1:6, dim = c(2,3))

看起来像:

      [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

好的,我理解这一点,但以下陈述意味着什么:

x[c(1,2), c(TRUE, TRUE, FALSE)]

输出:

      [,1] [,2]
 [1,]    1    3
 [2,]    2    4

实际发生了什么?

1 个答案:

答案 0 :(得分:1)

矩阵索引如下:matrix[rows, columns]。你在做什么告诉它: 第1行和第2行(c(1, 2))和 取第一列和第二列(TRUE, TRUE, FALSE),结果是

x[c(1,2), c(TRUE, TRUE, FALSE)]
#     [,1] [,2]
#[1,]    1    3
#[2,]    2    4

如果您将逻辑表达式的序列更改为TRUE, FALSE, TRUE,那么您将抓住第一列和第三列,即

x[c(1,2), c(TRUE, FALSE, TRUE)]
#     [,1] [,2]
#[1,]    1    5
#[2,]    2    6