R의 Matrix
패키지에있는 bdiag
함수를 사용하여 대각선 행렬을 생성 한 다음 결과 행렬 (mat
)을 자체 작성 함수에 전달하지만 R이 실행되지 않습니다. 다음 오류로 인해 :R에있는 S4 객체를 Fortran에 전달할 수 없습니다.
Error: invalid mode (S4) to pass to Fortran (arg 1)
나는 isS4(mat)
을 확인하고는 TRUE
입니다. 따라서 S4 객체를 어떻게 든 함수로 변환하기 위해 변환하는 방법이 있다고 생각합니다. 어떤 조언을 크게 주시면 감사하겠습니다!
업데이트 : 블록 대각 행렬을 구성하는 다음과 같은 코드를 사용 :
grp.ids <- as.factor(c(rep(1,8), rep(2,4), rep(3,2)))
x <- model.matrix(~grp.ids)
X <- do.call(bdiag, replicate(238, x, simplify=FALSE))
bdiag
기능을 사용하지 않고 S3 행렬을 얻을 수있는 다른 방법이 있나요? 감사!
해결 방법은 [this] [1]을 참조하십시오. [1] : http://stackoverflow.com/questions/13062164/repeat-a-matrix-many-times-and-get-a-vector-of-matrix-names – alittleboy