子集矩阵,如果索引无效,则获取NA

ttliker

我正在尝试对矩阵进行子集化,以始终获得3 * 3矩阵。

例如,作为子集的矩阵是a<-matrix(1:15,3,5),通常当我使用进行子集化a[0:2,0:2],我得到:

      [,1] [,2]
[1,]    1    4
[2,]    2    5

但我想得到类似的东西:

      [,1] [,2] [,3]
[1,]   NA    NA   NA
[2,]   NA    1    4
[3,]   NA    2    5
后期邮件

强制所有0的到NA那时你选择,以及任何“出界外的价值观:

ro <- 0:2
co <- 0:2
a[replace(ro,ro == 0 | ro > nrow(a),NA),
  replace(co,co == 0 | co > ncol(a),NA)]

#     [,1] [,2] [,3]
#[1,]   NA   NA   NA
#[2,]   NA    1    4
#[3,]   NA    2    5

这甚至可以与您要缺少的部分组合使用:

ro <- c(1,0,2)
co <- 0:2
a[replace(ro,ro == 0 | ro > nrow(a),NA),
  replace(co,co == 0 | co > ncol(a),NA)]

#     [,1] [,2] [,3]
#[1,]   NA    1    4
#[2,]   NA   NA   NA
#[3,]   NA    2    5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章