我正在尝试对矩阵进行子集化,以始终获得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] 删除。
我来说两句