2016-08-16 239 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個矩陣A和兩列col1和col2,B有三列col1,col2和colA。由於我想綁定所有這兩個矩陣,但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

非常感謝,這真的很有用 –