常に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
'がsになり、'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]
コメントを追加