glmnet 関数の出力として生成されたスパース行列 A があります。マトリックスAを印刷すると、すべてのエントリが表示され、上部に次のように表示されます-
1897 x 100 sparse Matrix of class "dgCMatrix"
[[ suppressing 32 column names 's0', 's1', 's2' ... ]]
ただし、マトリックスの次元を確認しようとすると、NULL が表示されます。
> dim(A)
NULL
したがって、as.matrix を使用して通常の行列に変換し、ファイルに書き込むと、エラーが発生します。
as.matrix(fit$A[,1])
Error in as.matrix(fit$A[, 1]) :
error in evaluating the argument 'x' in selecting a method for function 'as.matrix': Error in fit$A[, 1] : incorrect number of dimensions
この疎行列の値を取得してファイルに書き込むにはどうすればよいですか?
glmnet 関数で多項回帰 (family = "multinomial") を実行すると、この問題が発生します。ただし、Binomail 回帰 (family = "binomial") を実行している場合、これは正常に機能します。
また、 writeMM 関数を試してみました。それも機能しません:
> library('Matrix')
> writeMM(fit$A,file='test.txt')
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function 'writeMM' for signature '"list"'