2013-07-10 2 views
3

나는 glmnet 함수의 출력으로 생성 된 희소 행렬 A를가집니다. 나는 행렬 A를 인쇄 할 때 , 그것은 모든 항목을 보여줍니다 상단에 그것을 읽기 -R에서 파일에 드문 드문 행렬을 작성하는 방법은 무엇입니까?

1897 x 100 sparse Matrix of class "dgCMatrix" 
    [[ suppressing 32 column names 's0', 's1', 's2' ... ]] 

그러나, 나는 그것이 NULL을 보여줍니다 행렬의 크기를 참조하려고하면

> dim(A) 
NULL 

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 

가 어떻게이 스파 스 매트릭스의 값을 가져오고 파일로 작성하려면 어떻게해야합니까 : 나는 정규 행렬로 변환하고 파일에 쓰기 as.matrix를 사용하는 경우 따라서 오류가 발생합니다?

glmnet 함수에서 다항 회귀 (family = "multinomial")를 할 때이 문제가 발생합니다. 그러나 이것은 binomail regression (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"' 

답변

5

당신은 writeMMreadMM 스파 스 매트릭스를 읽고 작성하는 데 사용할 수 있으므로 매트릭스에 강요 할 필요. 계수의 목록을 반환 glmnet multinomial

writeMM(fit$A,file='test.txt') 
readMM(file='test.txt') 

편집. 그래서이 목록을 반복하고 각 계수를 작성해야합니다. 여기 예제 :이 오류 얻을

library(glmnet) 
g4=sample(1:4,100,replace=TRUE) 
fit3=glmnet(x,g4,family="multinomial") 
lapply(seq_along(fit3$beta),function(x) 
     writeMM(fit3$beta[[x]],file=paste0('coef.beta',x,'.txt'))) 
+0

-에>> writeMM (맞춤 $의 A, 파일 = 'TEST.TXT') 오류 (기능 (클래스), FDEF, mtable : 상속을 찾을 수 없습니다 함수 'writeMM'for signature ' "list"' – tan

+0

@tan 내 편집을 참조하십시오. 다항 예제를 추가합니다. – agstudy

+0

고마워요 @agstudy.이 작품은하지만, R에 내 제한된 지식을 용서. 각각의 파일은? 출력을 해석하는 방법은 무엇입니까? 다른 계수는 무엇을 의미합니까? 내 궁극적 인 목적은 모델의 예측 변수 각각에 대해 다른 베타 계수를 보는 것입니다. '이항'회귀로이를 얻는 것은 간단합니다. '다항식 회귀 (multinomial regression)'를 통해 지금 당장 3 개의 파일을 3 개 계수는 각각 길이가 다릅니다. 어떻게 해석합니까? – tan

관련 문제