2016-04-11 72 views
0

我已合并两个矩阵::你如何根据rowname索引对矩阵进行排序?

library(plyr) 
df3 = as.data.frame(t(combn(4,3)))  
df4 = as.data.frame(t(combn(4,4)))  
t(rbind.fill(df3,df4)) 

我所做的主要换位为我好,所以我可以看到我在做什么。

我想输出:

[,1] [,2] [,3] [,4] [,5] 
V1 1 1 1 NA 1 
V2 2 2 NA 2 2 
V3 3 NA 3  3 3 
V4 NA 4 4  4 4 

我试过匹配/排序/排序的各种方式,但已经得到错误的结果。欢迎任何建议 - 谢谢!

回答

1
library(plyr); ## for rbind.fill() 
df3 <- as.data.frame(t(combn(4,3))); 
df4 <- as.data.frame(t(combn(4,4))); 
df <- t(rbind.fill(df3,df4)); 
apply(df,2L,function(col) col[match(seq_along(col),col)]); 
##  [,1] [,2] [,3] [,4] [,5] 
## [1,] 1 1 1 NA 1 
## [2,] 2 2 NA 2 2 
## [3,] 3 NA 3 3 3 
## [4,] NA 4 4 4 4 
+0

仔细检查,这是不正确的。需要逐行匹配。我已经尝试过匹配(行),它仍然不起作用....你有什么建议? –

+0

第四行应该有“4”,而不是“3”? –

+0

第四行*有*有4. – bgoldst

相关问题