R语言数组索引疑问:解析x[c(1,2), c(TRUE, TRUE, FALSE)]执行逻辑
理解R语言数组的索引操作
首先,咱们先回顾你创建的数组x:
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)]这个索引操作,R语言中二维数组的索引格式是x[行索引, 列索引],逗号分隔开行和列的选择规则:
行索引部分:
c(1,2)
这是用位置索引指定要选取的行,1和2分别对应数组的第1行和第2行。因为你的数组本来就只有2行,所以这一步其实是保留了所有行。列索引部分:
c(TRUE, TRUE, FALSE)
这是用逻辑索引指定要选取的列,数组一共有3列,这个布尔向量的长度刚好和列数一致,每个元素对应一列:- 第一个
TRUE表示保留第1列 - 第二个
TRUE表示保留第2列 - 第三个
FALSE表示排除第3列
- 第一个
把两部分结合起来,这个语句的实际逻辑就是:选取数组x的所有行,同时保留前两列、排除第三列,所以最终输出的就是一个2行2列的数组:
[,1] [,2] [1,] 1 3 [2,] 2 4
内容的提问来源于stack exchange,提问作者Suhail Gupta
相关产品推荐
相关产品推荐

