0

내가 더미 바르와 솔루션 here을 구현하기 위해 노력하고,이 같은 루프가이R : 두 개의 Quanteda DFM 스파 스 행렬의 행렬 곱셈에 의해 주어진 빈 dgCMatrix를 초기화 하시겠습니까?

aaa <- DFM %*% t(DFM) #DFM is Quanteda dfm-sparse-matrix 
for(i in 1:nrow(aaa)) aaa[i,] <- aaa[i,][order(aaa[i,], decreasing = TRUE)] 

하지만 지금

for(i in 1:nrow(mmm)) mmm[i,] <- aaa[i,][order(aaa[i,], decreasing = TRUE)] 

어디 mmm 아직 존재하지 않도록, 목표는 작업을 수행하는 것입니다 mmm <- t(apply(a, 1, sort, decreasing = TRUE))과 같은 것. 하지만 이제 for 루프 전에 mmm을 초기화해야합니다. Error: object 'mmm' not found. aaammm의 유형은 이며 2의 행렬 곱셈에 의해 주어진 Quantada DFM matrices입니다.

구조

aaaFunc는 DFM은 Quanteda DFM 희소 행렬 인 매트릭스 곱셈 DFM %*% t(DFM) 주어진다. 구조는 방법과 DFM에

> str(aaaFunc) 
Formal class 'dgCMatrix' [package "Matrix"] with 6 slots 
    [email protected] i  : int [1:39052309] 0 2 1 0 2 2616 2880 3 4 5 ... 
    [email protected] p  : int [1:38162] 0 2 3 7 8 10 13 15 16 96 ... 
    [email protected] Dim  : int [1:2] 38161 38161 
    [email protected] Dimnames:List of 2 
    .. ..$ : chr [1:38161] "90120000" "90120000" "90120000" "86140000" ... 
    .. ..$ : chr [1:38161] "90120000" "90120000" "90120000" "86140000" ... 
    [email protected] x  : num [1:39052309] 1 1 1 1 2 1 1 1 2 1 ... 
    [email protected] factors : list() 

ERRORS 등등 콘텐츠 있지만 구조/않고 R 오브젝트를 복제에 일반적인 질문에 here 언급하도록한다. replace(...,NA)

01,235,164와 mySparseMatrix.mt[nrow(mySparseMatrix),]<-

> aaaFunc.mt <- aaaFunc[0,]; aaaFunc.mt[nrow(aaaFunc),] <- NA 
Error in intI(i, n = di[margin], dn = dn[[margin]], give.dn = FALSE) : 
    index larger than maximal 0 

C. 오차 aaaFunc.mt[]<- NA

> aaaFunc.mt <- aaaFunc[0,]; aaaFunc.mt[] <- NA; aaaFunc.mt[1,] 
Error in intI(i, n = [email protected][1], dn[[1]], give.dn = FALSE) : index larger than maximal 0 

B. 오차

A. 에러

Browse[2]> mmmFunc <- replace(aaaFunc,NA); 
Error in replace(aaaFunc, NA) : 
    argument "values" is missing, with no default 
Browse[2]> mmmFunc <- replace(aaaFunc,,NA); 
Error in `[<-`(`*tmp*`, list, value = NA) : 
    argument "list" is missing, with no default 
Browse[2]> mmmFunc <- replace(aaaFunc,c(),NA); 
Error in .local(x, i, j, ..., value) : 
    not-yet-implemented 'Matrix[<-' method 

어떻게 두 Quanteda DFM 행렬의 행렬 곱셈에 의해 주어진 빈 dgCMatrix을 초기화합니까?

+1

을 모두 유지하면서 다음 빈 희소 행렬을 초기화하거나 기존 스파 스 매트릭스를 재설정하거나 DFM 어떤 크기 초기화하려는 및 수행 초기 값되어야 하는지를 (제로 괜찮습니까?). –

+0

@KenBenoit 두 개의 Quanteda dfm-martices의 행렬 곱셈에 의해 주어진 'Dimnames : List of 2'와 같이 질문의 본문에 구조를 추가했습니다. 초기 값은 이전 값과 동일한 유형이어야합니다. – hhh

+0

유스 케이스로 판단하면'mmm = aaa'를 사용하여 코드를 사용할 수 있습니다. 이것은'aaa'에 영향을 미치지 않습니다. 다른 것을 필요로한다면'mmm = aaa;와 같은 중복 객체를 조작 할 수있다. mmm @ x = 벡터 (typeof (aaa @ x), 길이 (aaa @ x)); 변경할 필요가있는 다른 슬롯; ... ' –

답변