2016-08-16 4 views
2

私はこのコードを持っており、rbind.fill.matrixの使用方法を理解できません。 dtmatは、行の文書と列の単語を含む行列です。rbind.fill.matrixは本当に何をしていますか?

word <- do.call(rbind.fill.matrix,lapply(1:ncol(dtmat), function(i) { 
    t(rep(1:length(dtmat[,i]), dtmat[,i])) 
})) 

私は、機能の説明を読み、それが行列を結合するが、どれとNA不足している列で埋めを理解することはできませんと言います。

答えて

2

私が理解するところでは、この関数はNAにバインドしない列を置き換えます。 私は2つの行列col1とcol2を持つ2つの行列Aと、col1、col2とcolAの3つの列を持つBがあるとします。 rbindは両方の行列をバインドしたいが、rbindは同じ数の列と同じ列名を持つ行列のみをバインドするため、rbind.fill.matrixは列をバインドするが、両方の行列にないすべての値にNAを追加する。以下のコードはそれをより明確に説明します。

a <- matrix(c(1,1,2,2), nrow = 2, byrow = T) 
> a 
     [,1] [,2] 
[1,] 1 1 
[2,] 2 2 
> 
> b <- matrix(c(1,1,1,2,2,2,3,3,3), nrow = 3, byrow = T) 
> b 
     [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 2 2 2 
[3,] 3 3 3 
> 
> library(plyr) 
> r <- rbind.fill.matrix(a,b) 
> r 
    1 2 3 
[1,] 1 1 NA 
[2,] 2 2 NA 
[3,] 1 1 1 
[4,] 2 2 2 
[5,] 3 3 3 
> 
> 

このドキュメントでは、列名についても言及していますが、この例でもわかると思います。

+0

ありがとう、本当に便利でした –

関連する問題