When selecting all of your 0 to NA , as well as any "out of range" values:
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
This will work even with combinations of missing parts:
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
source share