私はこのような for ループを持っており、ここでソリューションを実装しようとしています。
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)]
wheremmm
がまだ存在しない場合、目標は と同じことを行うことですmmm <- t(apply(a, 1, sort, decreasing = TRUE))
。しかし、for ループの前に、mmm
otherwiseを初期化する必要がありますError: object 'mmm' not found
。との型は、aaa
2つの Quanteda DFM 行列の行列乗算によって与えられます。mmm
dgCMatrix
構造
aaaFunc
DFM %*% t(DFM)
DFM が Quanteda Sparse dfm-matrix である行列乗算によって与えられます。構造はそのようなものです
> str(aaaFunc) Formal class 'dgCMatrix' [package "Matrix"] with 6 slots ..@ i : int [1:39052309] 0 2 1 0 2 2616 2880 3 4 5 ... ..@ p : int [1:38162] 0 2 3 7 8 10 13 15 16 96 ... ..@ Dim : int [1:2] 38161 38161 ..@ Dimnames:List of 2 .. ..$ : chr [1:38161] "90120000" "90120000" "90120000" "86140000" ... .. ..$ : chr [1:38161] "90120000" "90120000" "90120000" "86140000" ... ..@ x : num [1:39052309] 1 1 1 1 2 1 1 1 2 1 ... ..@ factors : list()
ここで説明したメソッドを使用した DFM のエラーは、R オブジェクトをその内容ではなくその構造などを複製することに関する一般的な質問です。
A.エラー
aaaFunc.mt[]<- NA
> aaaFunc.mt <- aaaFunc[0,]; aaaFunc.mt[] <- NA; aaaFunc.mt[1,] Error in intI(i, n = x@Dim[1], dn[[1]], give.dn = FALSE) : index larger than maximal 0
B.エラー
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.エラー
replace(...,NA)
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
2 つの Quanteda DFM 行列の行列乗算によって得られる空の dgCMatrix をどのように初期化しますか?