繰り返し発生する問題のように思われるため、一般的な方法で質問したい非常に単純な質問です。一般的な方法を見つけていただければ幸いです。問題は、たとえば、論理行列を因子の行列に変換することですが、行列構造を維持します: 行と列の数、列名、行名。よりも簡単なものが欲しい
X2 <- matrix(as.mode(X), ncol=ncol(X));
rownames(X2) <- rownames(X) ...
いくつかのケースについては、すでにこの問題を把握しているので、ここに記載しますが、いくつかの質問が残っています...
A. (-->) 要因への変換は、私には簡単な方法がありません。
B. 1. 論理 --> 数値: 「+0」トリックを使用
BoolMatrix <- matrix(c(TRUE,FALSE),nrow=3,ncol=2)
rownames(BoolMatrix) <- LETTERS[1:3]; colnames(BoolMatrix) <-LETTERS[11:12]
(NumMatrix <- BoolMatrix + 0)
B. 2. 数値 --> 論理: 条件を直接使用
NumMatrix <- matrix(1:6, ncol=2)
rownames(NumMatrix) <- LETTERS[1:3]; colnames(NumMatrix) <-LETTERS[11:12]
(BoolMatrix <- NumMatrix == 0)
C. 数値 <--> 文字: 2 ライナーよりもうまくいくことはありません。モードを直接変更すると機能します (また、論理と数値の間でも機能しますが、上記のソリューションはよりエレガントです)
CharMatrix <- NumMatrix
mode(CharMatrix) <-"character"
print(CharMatrix)
最後の解決策(「2ライナー」)は、実際には、私が苦労している要因に関係のないものに対して機能します...
何か案が ?:-)