1. ホーム
  2. r

[解決済み] 行列を1列にサブセットし、行列のデータ型を維持し、行と列の名前を維持するにはどうしたらよいですか?

2023-01-31 22:16:43

質問

行列を 1 列にサブセットすると、結果は行列ではなく数値クラスになります (例: myMatrix[ , 5 ] を 5 列目にサブセットする)。 1 つの列にサブセットし、行列の形式を維持し、行と列の名前を維持する、次のような複雑なことをせずにコンパクトな方法はありますか。

matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )

どのように解決するのですか?

を使用します。 drop=FALSE 引数を [ .

m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1]             # vector
m[,1,drop=FALSE]  # matrix