从原始矩阵中选择奇数行和列 [复制]

Choose odd rows and columns from an original matrix [duplicate]

提问人: 提问时间:2/17/2022 最后编辑:Zoe is on strike 更新时间:2/24/2022 访问量:271

问:

我正在尝试从矩阵的奇数行和列中获取元素。矩阵为:

a = rbind(c(NA,2,-1,-2), c(0,1,3,0), c(0,NA,0,-1),c(3,1,5,NA))

我正在尝试获得:

     [,1] [,2]
[1,]   NA   -1
[2,]    0    0

如何创建一个只有这些元素的新矩阵 C?

R 矩阵 子集 数据操作

评论


答:

3赞 Maël 2/17/2022 #1

您可以使用模运算符来获取奇数行和列。%%

seq(nrow(a)) %% 2 == 1
# [1]  TRUE FALSE  TRUE FALSE

a[seq(nrow(a)) %% 2 == 1, seq(ncol(a)) %% 2 == 1]

#      [,1] [,2]
# [1,]   NA   -1
# [2,]    0    0
3赞 AndS. 2/17/2022 #2

我认为最简单的方法就是为行和列回收逻辑向量。

a[c(T,F), c(T,F)]
#>      [,1] [,2]
#> [1,]   NA   -1
#> [2,]    0    0