2011-09-02 55 views
3

我跑了一段代碼,這樣在R中,如何將聚合結果作爲矩陣返回?

x = data.frame(numerator = 1:3, value = letters[1:3],value1=letters[4:6]) 
xa = aggregate(list(x$numerator),by=list(x$value,x$value1),FUN=sum) 

但結果XA被格式化這樣

Group.1 Group.2 X1.3 
1  a  d 1 
2  b  e 2 
3  c  f 3 

我想我的結果,以矩陣形式進行組織,各行代表由Group.2值和列表示,如下所示:

d e f 
a 1 NULL NULL 
b NULL 2 NULL 
c NULL NULL 3 

我該怎麼做?

+3

重複性的例子是可能得到你更多的答覆 – richiemorrisroe

回答

3

您可以使用plyr軟件包中的daply。

xa = daply(.data=x, 
      .variables=c("value","value1"), 
      .fun=function(x) sum(x$numerator)) 
0

我們可以用一個基礎R功能:

tapply(x$numerator,x[,2:3],I) 
     value1 
value d e f 
    a 1 NA NA 
    b NA 2 NA 
    c NA NA 3 
相關問題